
/*
 * This source code file was generated by the C-code generator gentclAPI.tcl,
 * part of the Next Scripting Framework.
 */

#if defined(USE_NSF_STUBS)
int Nsf_ConvertTo_Boolean(Tcl_Interp *interp, Tcl_Obj *objPtr,  Nsf_Param const *pPtr,
			  ClientData *clientData, Tcl_Obj **outObjPtr) {
  return Nsf_ConvertToBoolean(interp, objPtr, pPtr, clientData, outObjPtr);
}
int Nsf_ConvertTo_Class(Tcl_Interp *interp, Tcl_Obj *objPtr,  Nsf_Param const *pPtr,
			  ClientData *clientData, Tcl_Obj **outObjPtr) {
  return Nsf_ConvertToClass(interp, objPtr, pPtr, clientData, outObjPtr);
}
int Nsf_ConvertTo_Int32(Tcl_Interp *interp, Tcl_Obj *objPtr,  Nsf_Param const *pPtr,
			  ClientData *clientData, Tcl_Obj **outObjPtr) {
  return Nsf_ConvertToInt32(interp, objPtr, pPtr, clientData, outObjPtr);
}
int Nsf_ConvertTo_Integer(Tcl_Interp *interp, Tcl_Obj *objPtr,  Nsf_Param const *pPtr,
			  ClientData *clientData, Tcl_Obj **outObjPtr) {
  return Nsf_ConvertToInteger(interp, objPtr, pPtr, clientData, outObjPtr);
}
int Nsf_ConvertTo_Object(Tcl_Interp *interp, Tcl_Obj *objPtr,  Nsf_Param const *pPtr,
			  ClientData *clientData, Tcl_Obj **outObjPtr) {
  return Nsf_ConvertToObject(interp, objPtr, pPtr, clientData, outObjPtr);
}
int Nsf_ConvertTo_Pointer(Tcl_Interp *interp, Tcl_Obj *objPtr,  Nsf_Param const *pPtr,
			  ClientData *clientData, Tcl_Obj **outObjPtr) {
  return Nsf_ConvertToPointer(interp, objPtr, pPtr, clientData, outObjPtr);
}
int Nsf_ConvertTo_String(Tcl_Interp *interp, Tcl_Obj *objPtr,  Nsf_Param const *pPtr,
			  ClientData *clientData, Tcl_Obj **outObjPtr) {
  return Nsf_ConvertToString(interp, objPtr, pPtr, clientData, outObjPtr);
}
int Nsf_ConvertTo_Tclobj(Tcl_Interp *interp, Tcl_Obj *objPtr,  Nsf_Param const *pPtr,
			  ClientData *clientData, Tcl_Obj **outObjPtr) {
  return Nsf_ConvertToTclobj(interp, objPtr, pPtr, clientData, outObjPtr);
}
#else
# define Nsf_ConvertTo_Boolean Nsf_ConvertToBoolean
# define Nsf_ConvertTo_Class Nsf_ConvertToClass
# define Nsf_ConvertTo_Int32 Nsf_ConvertToInt32
# define Nsf_ConvertTo_Integer Nsf_ConvertToInteger
# define Nsf_ConvertTo_Object Nsf_ConvertToObject
# define Nsf_ConvertTo_Pointer Nsf_ConvertToPointer
# define Nsf_ConvertTo_String Nsf_ConvertToString
# define Nsf_ConvertTo_Tclobj Nsf_ConvertToTclobj
#endif


#if !defined(likely)
# if defined(__GNUC__) && __GNUC__ > 2
/* Use gcc branch prediction hint to minimize cost of e.g. DTrace
 * ENABLED checks.
 */
#  define unlikely(x) (__builtin_expect((x), 0))
#  define likely(x) (__builtin_expect((x), 1))
# else
#  define unlikely(x) (x)
#  define likely(x) (x)
# endif
#endif



typedef enum {InfomethodsubcmdNULL, InfomethodsubcmdArgsIdx, InfomethodsubcmdBodyIdx, InfomethodsubcmdDefinitionIdx, InfomethodsubcmdExistsIdx, InfomethodsubcmdRegistrationhandleIdx, InfomethodsubcmdDefinitionhandleIdx, InfomethodsubcmdOriginIdx, InfomethodsubcmdParameterIdx, InfomethodsubcmdSyntaxIdx, InfomethodsubcmdTypeIdx, InfomethodsubcmdPreconditionIdx, InfomethodsubcmdPostconditionIdx, InfomethodsubcmdSubmethodsIdx, InfomethodsubcmdReturnsIdx, InfomethodsubcmdDisassembleIdx} InfomethodsubcmdIdx_t;

static int ConvertToInfomethodsubcmd(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param const *pPtr,
			    ClientData *clientData, Tcl_Obj **outObjPtr) {
  int pos, result;
  static const char *opts[] = {"args", "body", "definition", "exists", "registrationhandle", "definitionhandle", "origin", "parameter", "syntax", "type", "precondition", "postcondition", "submethods", "returns", "disassemble", NULL};
  (void)pPtr;
  result = Tcl_GetIndexFromObj(interp, objPtr, opts, "infomethodsubcmd", 0, &pos);
  *clientData = (ClientData) INT2PTR(pos + 1);
  *outObjPtr = objPtr;
  return result;
}
  
typedef enum {CallprotectionNULL, CallprotectionAllIdx, CallprotectionPublicIdx, CallprotectionProtectedIdx, CallprotectionPrivateIdx} CallprotectionIdx_t;

static int ConvertToCallprotection(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param const *pPtr,
			    ClientData *clientData, Tcl_Obj **outObjPtr) {
  int pos, result;
  static const char *opts[] = {"all", "public", "protected", "private", NULL};
  (void)pPtr;
  result = Tcl_GetIndexFromObj(interp, objPtr, opts, "callprotection", 0, &pos);
  *clientData = (ClientData) INT2PTR(pos + 1);
  *outObjPtr = objPtr;
  return result;
}
  
typedef enum {MethodtypeNULL, MethodtypeAllIdx, MethodtypeScriptedIdx, MethodtypeBuiltinIdx, MethodtypeAliasIdx, MethodtypeForwarderIdx, MethodtypeObjectIdx, MethodtypeSetterIdx, MethodtypeNsfprocIdx} MethodtypeIdx_t;

static int ConvertToMethodtype(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param const *pPtr,
			    ClientData *clientData, Tcl_Obj **outObjPtr) {
  int pos, result;
  static const char *opts[] = {"all", "scripted", "builtin", "alias", "forwarder", "object", "setter", "nsfproc", NULL};
  (void)pPtr;
  result = Tcl_GetIndexFromObj(interp, objPtr, opts, "methodtype", 0, &pos);
  *clientData = (ClientData) INT2PTR(pos + 1);
  *outObjPtr = objPtr;
  return result;
}
  
typedef enum {DefinitionsourceNULL, DefinitionsourceAllIdx, DefinitionsourceApplicationIdx, DefinitionsourceSystemIdx} DefinitionsourceIdx_t;

static int ConvertToDefinitionsource(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param const *pPtr,
			    ClientData *clientData, Tcl_Obj **outObjPtr) {
  int pos, result;
  static const char *opts[] = {"all", "application", "system", NULL};
  (void)pPtr;
  result = Tcl_GetIndexFromObj(interp, objPtr, opts, "definitionsource", 0, &pos);
  *clientData = (ClientData) INT2PTR(pos + 1);
  *outObjPtr = objPtr;
  return result;
}
  
typedef enum {MixinscopeNULL, MixinscopeAllIdx, MixinscopeClassIdx, MixinscopeObjectIdx} MixinscopeIdx_t;

static int ConvertToMixinscope(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param const *pPtr,
			    ClientData *clientData, Tcl_Obj **outObjPtr) {
  int pos, result;
  static const char *opts[] = {"all", "class", "object", NULL};
  (void)pPtr;
  result = Tcl_GetIndexFromObj(interp, objPtr, opts, "mixinscope", 0, &pos);
  *clientData = (ClientData) INT2PTR(pos + 1);
  *outObjPtr = objPtr;
  return result;
}
  
typedef enum {ConfigureoptionNULL, ConfigureoptionDebugIdx, ConfigureoptionDtraceIdx, ConfigureoptionFilterIdx, ConfigureoptionSoftrecreateIdx, ConfigureoptionObjectsystemsIdx, ConfigureoptionKeepcmdsIdx, ConfigureoptionCheckresultsIdx, ConfigureoptionCheckargumentsIdx} ConfigureoptionIdx_t;
const char *Nsf_Configureoption[] = {"debug", "dtrace", "filter", "softrecreate", "objectsystems", "keepcmds", "checkresults", "checkarguments", NULL};
static int ConvertToConfigureoption(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param const *pPtr,
			    ClientData *clientData, Tcl_Obj **outObjPtr) {
  int pos, result;
  
  (void)pPtr;
  result = Tcl_GetIndexFromObj(interp, objPtr, Nsf_Configureoption, "configureoption", 0, &pos);
  *clientData = (ClientData) INT2PTR(pos + 1);
  *outObjPtr = objPtr;
  return result;
}
  
typedef enum {CurrentoptionNULL, CurrentoptionActivelevelIdx, CurrentoptionActivemixinIdx, CurrentoptionArgsIdx, CurrentoptionCalledclassIdx, CurrentoptionCalledmethodIdx, CurrentoptionCalledprocIdx, CurrentoptionCallingclassIdx, CurrentoptionCallinglevelIdx, CurrentoptionCallingmethodIdx, CurrentoptionCallingobjectIdx, CurrentoptionCallingprocIdx, CurrentoptionClassIdx, CurrentoptionFilterregIdx, CurrentoptionIsnextcallIdx, CurrentoptionLevelIdx, CurrentoptionMethodpathIdx, CurrentoptionMethodIdx, CurrentoptionNextmethodIdx, CurrentoptionObjectIdx, CurrentoptionProcIdx} CurrentoptionIdx_t;

static int ConvertToCurrentoption(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param const *pPtr,
			    ClientData *clientData, Tcl_Obj **outObjPtr) {
  int pos, result;
  static const char *opts[] = {"activelevel", "activemixin", "args", "calledclass", "calledmethod", "calledproc", "callingclass", "callinglevel", "callingmethod", "callingobject", "callingproc", "class", "filterreg", "isnextcall", "level", "methodpath", "method", "nextmethod", "object", "proc", NULL};
  (void)pPtr;
  result = Tcl_GetIndexFromObj(interp, objPtr, opts, "currentoption", 0, &pos);
  *clientData = (ClientData) INT2PTR(pos + 1);
  *outObjPtr = objPtr;
  return result;
}
  
typedef enum {FrameNULL, FrameMethodIdx, FrameObjectIdx, FrameDefaultIdx} FrameIdx_t;

static int ConvertToFrame(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param const *pPtr,
			    ClientData *clientData, Tcl_Obj **outObjPtr) {
  int pos, result;
  static const char *opts[] = {"method", "object", "default", NULL};
  (void)pPtr;
  result = Tcl_GetIndexFromObj(interp, objPtr, opts, "frame", 0, &pos);
  *clientData = (ClientData) INT2PTR(pos + 1);
  *outObjPtr = objPtr;
  return result;
}
  
typedef enum {ForwardpropertyNULL, ForwardpropertyPrefixIdx, ForwardpropertyTargetIdx, ForwardpropertyVerboseIdx} ForwardpropertyIdx_t;

static int ConvertToForwardproperty(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param const *pPtr,
			    ClientData *clientData, Tcl_Obj **outObjPtr) {
  int pos, result;
  static const char *opts[] = {"prefix", "target", "verbose", NULL};
  (void)pPtr;
  result = Tcl_GetIndexFromObj(interp, objPtr, opts, "forwardProperty", 0, &pos);
  *clientData = (ClientData) INT2PTR(pos + 1);
  *outObjPtr = objPtr;
  return result;
}
  
typedef enum {ProtectionNULL, ProtectionCall_protectedIdx, ProtectionRedefine_protectedIdx, ProtectionNoneIdx} ProtectionIdx_t;

static int ConvertToProtection(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param const *pPtr,
			    ClientData *clientData, Tcl_Obj **outObjPtr) {
  int pos, result;
  static const char *opts[] = {"call-protected", "redefine-protected", "none", NULL};
  (void)pPtr;
  result = Tcl_GetIndexFromObj(interp, objPtr, opts, "protection", 0, &pos);
  *clientData = (ClientData) INT2PTR(pos + 1);
  *outObjPtr = objPtr;
  return result;
}
  
typedef enum {AssertionsubcmdNULL, AssertionsubcmdCheckIdx, AssertionsubcmdObject_invarIdx, AssertionsubcmdClass_invarIdx} AssertionsubcmdIdx_t;

static int ConvertToAssertionsubcmd(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param const *pPtr,
			    ClientData *clientData, Tcl_Obj **outObjPtr) {
  int pos, result;
  static const char *opts[] = {"check", "object-invar", "class-invar", NULL};
  (void)pPtr;
  result = Tcl_GetIndexFromObj(interp, objPtr, opts, "assertionsubcmd", 0, &pos);
  *clientData = (ClientData) INT2PTR(pos + 1);
  *outObjPtr = objPtr;
  return result;
}
  
typedef enum {MethodpropertyNULL, MethodpropertyClass_onlyIdx, MethodpropertyCall_privateIdx, MethodpropertyCall_protectedIdx, MethodpropertyDebugIdx, MethodpropertyDeprecatedIdx, MethodpropertyExistsIdx, MethodpropertyRedefine_protectedIdx, MethodpropertyReturnsIdx} MethodpropertyIdx_t;

static int ConvertToMethodproperty(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param const *pPtr,
			    ClientData *clientData, Tcl_Obj **outObjPtr) {
  int pos, result;
  static const char *opts[] = {"class-only", "call-private", "call-protected", "debug", "deprecated", "exists", "redefine-protected", "returns", NULL};
  (void)pPtr;
  result = Tcl_GetIndexFromObj(interp, objPtr, opts, "methodProperty", 0, &pos);
  *clientData = (ClientData) INT2PTR(pos + 1);
  *outObjPtr = objPtr;
  return result;
}
  
typedef enum {ObjectpropertyNULL, ObjectpropertyInitializedIdx, ObjectpropertyClassIdx, ObjectpropertyRootmetaclassIdx, ObjectpropertyRootclassIdx, ObjectpropertyVolatileIdx, ObjectpropertyAutonamedIdx, ObjectpropertySlotcontainerIdx, ObjectpropertyHasperobjectslotsIdx, ObjectpropertyKeepcallerselfIdx, ObjectpropertyPerobjectdispatchIdx} ObjectpropertyIdx_t;

static int ConvertToObjectproperty(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param const *pPtr,
			    ClientData *clientData, Tcl_Obj **outObjPtr) {
  int pos, result;
  static const char *opts[] = {"initialized", "class", "rootmetaclass", "rootclass", "volatile", "autonamed", "slotcontainer", "hasperobjectslots", "keepcallerself", "perobjectdispatch", NULL};
  (void)pPtr;
  result = Tcl_GetIndexFromObj(interp, objPtr, opts, "objectProperty", 0, &pos);
  *clientData = (ClientData) INT2PTR(pos + 1);
  *outObjPtr = objPtr;
  return result;
}
  
typedef enum {ParametersubcmdNULL, ParametersubcmdDefaultIdx, ParametersubcmdListIdx, ParametersubcmdNameIdx, ParametersubcmdSyntaxIdx, ParametersubcmdTypeIdx} ParametersubcmdIdx_t;

static int ConvertToParametersubcmd(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param const *pPtr,
			    ClientData *clientData, Tcl_Obj **outObjPtr) {
  int pos, result;
  static const char *opts[] = {"default", "list", "name", "syntax", "type", NULL};
  (void)pPtr;
  result = Tcl_GetIndexFromObj(interp, objPtr, opts, "parametersubcmd", 0, &pos);
  *clientData = (ClientData) INT2PTR(pos + 1);
  *outObjPtr = objPtr;
  return result;
}
  
typedef enum {RelationtypeNULL, RelationtypeObject_mixinIdx, RelationtypeClass_mixinIdx, RelationtypeObject_filterIdx, RelationtypeClass_filterIdx, RelationtypeClassIdx, RelationtypeSuperclassIdx, RelationtypeRootclassIdx} RelationtypeIdx_t;

static int ConvertToRelationtype(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param const *pPtr,
			    ClientData *clientData, Tcl_Obj **outObjPtr) {
  int pos, result;
  static const char *opts[] = {"object-mixin", "class-mixin", "object-filter", "class-filter", "class", "superclass", "rootclass", NULL};
  (void)pPtr;
  result = Tcl_GetIndexFromObj(interp, objPtr, opts, "relationtype", 0, &pos);
  *clientData = (ClientData) INT2PTR(pos + 1);
  *outObjPtr = objPtr;
  return result;
}
  

      static Nsf_EnumeratorConverterEntry enumeratorConverterEntries[] = {
  {ConvertToInfomethodsubcmd, "args|body|definition|exists|registrationhandle|definitionhandle|origin|parameter|syntax|type|precondition|postcondition|submethods|returns|disassemble"},
  {ConvertToCallprotection, "all|public|protected|private"},
  {ConvertToMethodtype, "all|scripted|builtin|alias|forwarder|object|setter|nsfproc"},
  {ConvertToFrame, "method|object|default"},
  {ConvertToCurrentoption, "activelevel|activemixin|args|calledclass|calledmethod|calledproc|callingclass|callinglevel|callingmethod|callingobject|callingproc|class|filterreg|isnextcall|level|methodpath|method|nextmethod|object|proc"},
  {ConvertToMethodproperty, "class-only|call-private|call-protected|debug|deprecated|exists|redefine-protected|returns"},
  {ConvertToRelationtype, "object-mixin|class-mixin|object-filter|class-filter|class|superclass|rootclass"},
  {ConvertToDefinitionsource, "all|application|system"},
  {ConvertToForwardproperty, "prefix|target|verbose"},
  {ConvertToConfigureoption, "debug|dtrace|filter|softrecreate|objectsystems|keepcmds|checkresults|checkarguments"},
  {ConvertToObjectproperty, "initialized|class|rootmetaclass|rootclass|volatile|autonamed|slotcontainer|hasperobjectslots|keepcallerself|perobjectdispatch"},
  {ConvertToAssertionsubcmd, "check|object-invar|class-invar"},
  {ConvertToParametersubcmd, "default|list|name|syntax|type"},
  {ConvertToMixinscope, "all|class|object"},
  {ConvertToProtection, "call-protected|redefine-protected|none"},
  {NULL, NULL}
};
    

/* just to define the symbol */
static Nsf_methodDefinition method_definitions[121];
  
static const char *method_command_namespace_names[] = {
  "::nsf::methods::object::info",
  "::nsf::methods::object",
  "::nsf::methods::class::info",
  "::nsf::methods::class"
};
static int NsfCAllocMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfCCreateMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfCDeallocMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfCFilterGuardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfCGetCachendParametersMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfCMixinGuardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfCNewMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfCRecreateMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfCSuperclassMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfClassInfoFilterguardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfClassInfoFiltersMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfClassInfoForwardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfClassInfoHeritageMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfClassInfoInstancesMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfClassInfoMethodMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfClassInfoMethodsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfClassInfoMixinOfMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfClassInfoMixinguardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfClassInfoMixinsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfClassInfoSlotobjectsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfClassInfoSubclassMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfClassInfoSuperclassMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfAsmMethodCreateCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfAsmProcCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfCallgrindDumpStatsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfCallgrindStartInstrumentationCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfCallgrindStopInstrumentationCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfCallgrindToggleCollectCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfCallgrindZeroStatsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfCmdInfoCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfColonCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfConfigureCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfCurrentCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfDebugCompileEpochStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfDebugGetDictStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfDebugRunAssertionsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfDebugShowObjStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfDefinitionNamespaceCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfDirectDispatchCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfDispatchCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfFinalizeCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfForwardPropertyCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfInterpObjCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfIsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfMethodAliasCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfMethodAssertionCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfMethodCreateCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfMethodDeleteCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfMethodForwardCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfMethodPropertyCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfMethodRegisteredCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfMethodSetterCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfMyCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfNSCopyVarsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfNextCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjectAllocCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjectExistsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjectPropertyCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjectQualifyCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjectSystemCreateCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfParameterCacheClassInvalidateCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfParameterCacheObjectInvalidateCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfParameterInfoCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfParameterSpecsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfParseArgsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfProcCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfProfileClearDataStubStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfProfileGetDataStubStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfProfileTraceStubStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfRelationGetCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfRelationSetCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfSelfCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfShowStackCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfUnsetUnknownArgsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfVarExistsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfVarGetCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfVarImportCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfVarSetCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfVarUnsetCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfOAutonameMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfOCgetMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfOClassMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfOCleanupMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfOConfigureMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfODestroyMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfOExistsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfOFilterGuardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfOInstvarMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfOMixinGuardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfONoinitMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfORequireNamespaceMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfOResidualargsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfOUplevelMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfOUpvarMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfOVolatile1MethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfOVolatileMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoBaseclassMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoChildrenMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoClassMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoFilterguardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoFiltersMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoForwardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoHasMixinMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoHasTypeMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoHasnamespaceMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoLookupFilterMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoLookupFiltersMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoLookupMethodMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoLookupMethodsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoLookupMixinsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoLookupSlotsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoMethodMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoMethodsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoMixinguardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoMixinsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoNameMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoParentMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoPrecedenceMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoSlotobjectsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoVarsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);

static int NsfCAllocMethod(Tcl_Interp *interp, NsfClass *class, Tcl_Obj *objectNameObj)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3);
static int NsfCCreateMethod(Tcl_Interp *interp, NsfClass *class, Tcl_Obj *objectNameObj, int trailingObjc, Tcl_Obj *const* trailingObjv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3);
static int NsfCDeallocMethod(Tcl_Interp *interp, NsfClass *class, Tcl_Obj *objectObj)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3);
static int NsfCFilterGuardMethod(Tcl_Interp *interp, NsfClass *class, const char *filter, Tcl_Obj *guardObj)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3) NSF_nonnull(4);
static int NsfCGetCachendParametersMethod(Tcl_Interp *interp, NsfClass *class)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfCMixinGuardMethod(Tcl_Interp *interp, NsfClass *class, Tcl_Obj *mixinObj, Tcl_Obj *guardObj)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3) NSF_nonnull(4);
static int NsfCNewMethod(Tcl_Interp *interp, NsfClass *class, Tcl_Obj *childofObj, int trailingObjc, Tcl_Obj *const* trailingObjv)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfCRecreateMethod(Tcl_Interp *interp, NsfClass *class, Tcl_Obj *objectNameObj, int trailingObjc, Tcl_Obj *const* trailingObjv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3);
static int NsfCSuperclassMethod(Tcl_Interp *interp, NsfClass *class, Tcl_Obj *superclassesObj)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfClassInfoFilterguardMethod(Tcl_Interp *interp, NsfClass *class, const char *filter)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3);
static int NsfClassInfoFiltersMethod(Tcl_Interp *interp, NsfClass *class, int withGuards, const char *pattern)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfClassInfoForwardMethod(Tcl_Interp *interp, NsfClass *class, int withDefinition, const char *pattern)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfClassInfoHeritageMethod(Tcl_Interp *interp, NsfClass *class, const char *pattern)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfClassInfoInstancesMethod(Tcl_Interp *interp, NsfClass *class, int withClosure, const char *patternString, NsfObject *patternObject)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfClassInfoMethodMethod(Tcl_Interp *interp, NsfClass *class, InfomethodsubcmdIdx_t subcmd, Tcl_Obj *nameObj)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfClassInfoMethodsMethod(Tcl_Interp *interp, NsfClass *class, CallprotectionIdx_t withCallprotection, int withClosure, MethodtypeIdx_t withType, int withPath, DefinitionsourceIdx_t withSource, const char *pattern)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfClassInfoMixinOfMethod(Tcl_Interp *interp, NsfClass *class, int withClosure, MixinscopeIdx_t withScope, const char *patternString, NsfObject *patternObject)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfClassInfoMixinguardMethod(Tcl_Interp *interp, NsfClass *class, const char *mixin)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3);
static int NsfClassInfoMixinsMethod(Tcl_Interp *interp, NsfClass *class, int withClosure, int withGuards, int withHeritage, const char *patternString, NsfObject *patternObject)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfClassInfoSlotobjectsMethod(Tcl_Interp *interp, NsfClass *class, int withClosure, DefinitionsourceIdx_t withSource, NsfClass *typeClass, const char *pattern)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfClassInfoSubclassMethod(Tcl_Interp *interp, NsfClass *class, int withClosure, int withDependent, const char *patternString, NsfObject *patternObject)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfClassInfoSuperclassMethod(Tcl_Interp *interp, NsfClass *class, int withClosure, Tcl_Obj *patternObj)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfAsmMethodCreateCmd(Tcl_Interp *interp, NsfObject *object, int withCheckalways, int withInner_namespace, int withPer_object, NsfObject *regObject, Tcl_Obj *methodNameObj, Tcl_Obj *argumentsObj, Tcl_Obj *bodyObj)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(7) NSF_nonnull(8) NSF_nonnull(9);
static int NsfAsmProcCmd(Tcl_Interp *interp, int withAd, int withCheckalways, Tcl_Obj *procNameObj, Tcl_Obj *argumentsObj, Tcl_Obj *bodyObj)
  NSF_nonnull(1) NSF_nonnull(4) NSF_nonnull(5) NSF_nonnull(6);
static int NsfCallgrindDumpStatsCmd(Tcl_Interp *interp, const char *withName)
  NSF_nonnull(1);
static int NsfCallgrindStartInstrumentationCmd(Tcl_Interp *interp)
  NSF_nonnull(1);
static int NsfCallgrindStopInstrumentationCmd(Tcl_Interp *interp)
  NSF_nonnull(1);
static int NsfCallgrindToggleCollectCmd(Tcl_Interp *interp)
  NSF_nonnull(1);
static int NsfCallgrindZeroStatsCmd(Tcl_Interp *interp)
  NSF_nonnull(1);
static int NsfCmdInfoCmd(Tcl_Interp *interp, InfomethodsubcmdIdx_t subcmd, NsfObject *contextObject, Tcl_Obj *methodNameObj, const char *pattern)
  NSF_nonnull(1) NSF_nonnull(4);
static int NsfColonCmd(Tcl_Interp *interp, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1);
static int NsfConfigureCmd(Tcl_Interp *interp, ConfigureoptionIdx_t option, Tcl_Obj *valueObj)
  NSF_nonnull(1);
static int NsfCurrentCmd(Tcl_Interp *interp, CurrentoptionIdx_t option)
  NSF_nonnull(1);
static int NsfDebugCompileEpoch(Tcl_Interp *interp)
  NSF_nonnull(1);
static int NsfDebugGetDict(Tcl_Interp *interp, Tcl_Obj *obj)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfDebugRunAssertionsCmd(Tcl_Interp *interp)
  NSF_nonnull(1);
static int NsfDebugShowObj(Tcl_Interp *interp, Tcl_Obj *obj)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfDefinitionNamespaceCmd(Tcl_Interp *interp)
  NSF_nonnull(1);
static int NsfDirectDispatchCmd(Tcl_Interp *interp, NsfObject *object, FrameIdx_t withFrame, Tcl_Obj *commandObj, int trailingObjc, Tcl_Obj *const* trailingObjv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfDispatchCmd(Tcl_Interp *interp, NsfObject *object, int withIntrinsic, int withSystem, Tcl_Obj *commandObj, int trailingObjc, Tcl_Obj *const* trailingObjv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(5);
static int NsfFinalizeCmd(Tcl_Interp *interp, int withKeepvars)
  NSF_nonnull(1);
static int NsfForwardPropertyCmd(Tcl_Interp *interp, NsfObject *object, int withPer_object, Tcl_Obj *methodNameObj, ForwardpropertyIdx_t forwardProperty, Tcl_Obj *valueObj)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfInterpObjCmd(Tcl_Interp *interp, const char *name, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfIsCmd(Tcl_Interp *interp, int withComplain, int withConfigure, const char *withName, Tcl_Obj *constraintObj, Tcl_Obj *valueObj)
  NSF_nonnull(1) NSF_nonnull(5) NSF_nonnull(6);
static int NsfMethodAliasCmd(Tcl_Interp *interp, NsfObject *object, int withPer_object, const char *methodName, FrameIdx_t withFrame, ProtectionIdx_t withProtection, Tcl_Obj *cmdNameObj)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4) NSF_nonnull(7);
static int NsfMethodAssertionCmd(Tcl_Interp *interp, NsfObject *object, AssertionsubcmdIdx_t subcmd, Tcl_Obj *argObj)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfMethodCreateCmd(Tcl_Interp *interp, NsfObject *object, int withCheckalways, int withInner_namespace, int withPer_object, NsfObject *regObject, Tcl_Obj *methodNameObj, Tcl_Obj *argumentsObj, Tcl_Obj *bodyObj, Tcl_Obj *preconditionObj, Tcl_Obj *postconditionObj)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(7) NSF_nonnull(8) NSF_nonnull(9);
static int NsfMethodDeleteCmd(Tcl_Interp *interp, NsfObject *object, int withPer_object, Tcl_Obj *methodNameObj)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfMethodForwardCmd(Tcl_Interp *interp, NsfObject *object, int withPer_object, Tcl_Obj *methodObj, Tcl_Obj *defaultObj, int withEarlybinding, Tcl_Obj *onerrorObj, Tcl_Obj *prefixObj, FrameIdx_t withFrame, int withVerbose, Tcl_Obj *targetObj, int trailingObjc, Tcl_Obj *const* trailingObjv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfMethodPropertyCmd(Tcl_Interp *interp, NsfObject *object, int withPer_object, Tcl_Obj *methodNameObj, MethodpropertyIdx_t methodProperty, Tcl_Obj *valueObj)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfMethodRegisteredCmd(Tcl_Interp *interp, Tcl_Obj *handleObj)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfMethodSetterCmd(Tcl_Interp *interp, NsfObject *object, int withPer_object, Tcl_Obj *parameterObj)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfMyCmd(Tcl_Interp *interp, int withIntrinsic, int withLocal, int withSystem, Tcl_Obj *methodNameObj, int trailingObjc, Tcl_Obj *const* trailingObjv)
  NSF_nonnull(1) NSF_nonnull(5);
static int NsfNSCopyVarsCmd(Tcl_Interp *interp, Tcl_Obj *fromNsObj, Tcl_Obj *toNsObj)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3);
static int NsfNextCmd(Tcl_Interp *interp, Tcl_Obj *argumentsObj)
  NSF_nonnull(1);
static int NsfObjectAllocCmd(Tcl_Interp *interp, NsfClass *class, Tcl_Obj *nameObj, Tcl_Obj *initcmdObj)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3);
static int NsfObjectExistsCmd(Tcl_Interp *interp, Tcl_Obj *valueObj)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjectPropertyCmd(Tcl_Interp *interp, NsfObject *object, ObjectpropertyIdx_t objectProperty, Tcl_Obj *valueObj)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjectQualifyCmd(Tcl_Interp *interp, Tcl_Obj *objectNameObj)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjectSystemCreateCmd(Tcl_Interp *interp, Tcl_Obj *rootClassObj, Tcl_Obj *rootMetaClassObj, Tcl_Obj *systemMethodsObj)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3);
static int NsfParameterCacheClassInvalidateCmd(Tcl_Interp *interp, NsfClass *class)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfParameterCacheObjectInvalidateCmd(Tcl_Interp *interp, NsfObject *object)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfParameterInfoCmd(Tcl_Interp *interp, ParametersubcmdIdx_t subcmd, Tcl_Obj *specObj, Tcl_Obj *varnameObj)
  NSF_nonnull(1) NSF_nonnull(3);
static int NsfParameterSpecsCmd(Tcl_Interp *interp, int withConfigure, int withNonposargs, Tcl_Obj *slotobjsObj)
  NSF_nonnull(1) NSF_nonnull(4);
static int NsfParseArgsCmd(Tcl_Interp *interp, Tcl_Obj *argspecObj, Tcl_Obj *arglistObj)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3);
static int NsfProcCmd(Tcl_Interp *interp, int withAd, int withCheckalways, int withDebug, int withDeprecated, Tcl_Obj *procNameObj, Tcl_Obj *argumentsObj, Tcl_Obj *bodyObj)
  NSF_nonnull(1) NSF_nonnull(6) NSF_nonnull(7) NSF_nonnull(8);
static int NsfProfileClearDataStub(Tcl_Interp *interp)
  NSF_nonnull(1);
static int NsfProfileGetDataStub(Tcl_Interp *interp)
  NSF_nonnull(1);
static int NsfProfileTraceStub(Tcl_Interp *interp, int withEnable, int withVerbose, int withDontsave, Tcl_Obj *builtinsObj)
  NSF_nonnull(1);
static int NsfRelationGetCmd(Tcl_Interp *interp, NsfObject *object, RelationtypeIdx_t type)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfRelationSetCmd(Tcl_Interp *interp, NsfObject *object, RelationtypeIdx_t type, Tcl_Obj *valueObj)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfSelfCmd(Tcl_Interp *interp)
  NSF_nonnull(1);
static int NsfShowStackCmd(Tcl_Interp *interp)
  NSF_nonnull(1);
static int NsfUnsetUnknownArgsCmd(Tcl_Interp *interp)
  NSF_nonnull(1);
static int NsfVarExistsCmd(Tcl_Interp *interp, int withArray, NsfObject *object, const char *varName)
  NSF_nonnull(1) NSF_nonnull(3) NSF_nonnull(4);
static int NsfVarGetCmd(Tcl_Interp *interp, int withArray, int withNotrace, NsfObject *object, Tcl_Obj *varNameObj)
  NSF_nonnull(1) NSF_nonnull(4) NSF_nonnull(5);
static int NsfVarImportCmd(Tcl_Interp *interp, NsfObject *object, int trailingObjc, Tcl_Obj *const* trailingObjv)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfVarSetCmd(Tcl_Interp *interp, int withArray, int withNotrace, NsfObject *object, Tcl_Obj *varNameObj, Tcl_Obj *valueObj)
  NSF_nonnull(1) NSF_nonnull(4) NSF_nonnull(5);
static int NsfVarUnsetCmd(Tcl_Interp *interp, int withNocomplain, NsfObject *object, Tcl_Obj *varNameObj)
  NSF_nonnull(1) NSF_nonnull(3) NSF_nonnull(4);
static int NsfOAutonameMethod(Tcl_Interp *interp, NsfObject *object, int withInstance, int withReset, Tcl_Obj *nameObj)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(5);
static int NsfOCgetMethod(Tcl_Interp *interp, NsfObject *object, Tcl_Obj *nameObj)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3);
static int NsfOClassMethod(Tcl_Interp *interp, NsfObject *object, Tcl_Obj *classObj)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfOCleanupMethod(Tcl_Interp *interp, NsfObject *object)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfOConfigureMethod(Tcl_Interp *interp, NsfObject *object, int trailingObjc, Tcl_Obj *const* trailingObjv, Tcl_Obj *objv0)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfODestroyMethod(Tcl_Interp *interp, NsfObject *object)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfOExistsMethod(Tcl_Interp *interp, NsfObject *object, const char *varName)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3);
static int NsfOFilterGuardMethod(Tcl_Interp *interp, NsfObject *object, const char *filter, Tcl_Obj *guardObj)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3) NSF_nonnull(4);
static int NsfOInstvarMethod(Tcl_Interp *interp, NsfObject *object, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfOMixinGuardMethod(Tcl_Interp *interp, NsfObject *object, Tcl_Obj *mixinObj, Tcl_Obj *guardObj)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3) NSF_nonnull(4);
static int NsfONoinitMethod(Tcl_Interp *interp, NsfObject *object)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfORequireNamespaceMethod(Tcl_Interp *interp, NsfObject *object)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfOResidualargsMethod(Tcl_Interp *interp, NsfObject *object, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfOUplevelMethod(Tcl_Interp *interp, NsfObject *object, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfOUpvarMethod(Tcl_Interp *interp, NsfObject *object, int objc, Tcl_Obj *const* objv)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfOVolatile1Method(Tcl_Interp *interp, NsfObject *object)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfOVolatileMethod(Tcl_Interp *interp, NsfObject *object)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjInfoBaseclassMethod(Tcl_Interp *interp, NsfObject *object)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjInfoChildrenMethod(Tcl_Interp *interp, NsfObject *object, NsfClass *typeClass, const char *pattern)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjInfoClassMethod(Tcl_Interp *interp, NsfObject *object)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjInfoFilterguardMethod(Tcl_Interp *interp, NsfObject *object, const char *filter)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3);
static int NsfObjInfoFiltersMethod(Tcl_Interp *interp, NsfObject *object, int withGuards, const char *pattern)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjInfoForwardMethod(Tcl_Interp *interp, NsfObject *object, int withDefinition, const char *pattern)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjInfoHasMixinMethod(Tcl_Interp *interp, NsfObject *object, NsfClass *class)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3);
static int NsfObjInfoHasTypeMethod(Tcl_Interp *interp, NsfObject *object, NsfClass *class)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3);
static int NsfObjInfoHasnamespaceMethod(Tcl_Interp *interp, NsfObject *object)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjInfoLookupFilterMethod(Tcl_Interp *interp, NsfObject *object, const char *filter)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3);
static int NsfObjInfoLookupFiltersMethod(Tcl_Interp *interp, NsfObject *object, int withGuards, const char *pattern)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjInfoLookupMethodMethod(Tcl_Interp *interp, NsfObject *object, Tcl_Obj *nameObj)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3);
static int NsfObjInfoLookupMethodsMethod(Tcl_Interp *interp, NsfObject *object, CallprotectionIdx_t withCallprotection, int withIncontext, MethodtypeIdx_t withType, int withNomixins, int withPath, DefinitionsourceIdx_t withSource, const char *pattern)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjInfoLookupMixinsMethod(Tcl_Interp *interp, NsfObject *object, int withGuards, const char *patternString, NsfObject *patternObject)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjInfoLookupSlotsMethod(Tcl_Interp *interp, NsfObject *object, DefinitionsourceIdx_t withSource, NsfClass *typeClass, const char *pattern)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjInfoMethodMethod(Tcl_Interp *interp, NsfObject *object, InfomethodsubcmdIdx_t subcmd, Tcl_Obj *nameObj)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoMethodsMethod(Tcl_Interp *interp, NsfObject *object, CallprotectionIdx_t withCallprotection, MethodtypeIdx_t withType, int withPath, const char *pattern)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjInfoMixinguardMethod(Tcl_Interp *interp, NsfObject *object, const char *mixin)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3);
static int NsfObjInfoMixinsMethod(Tcl_Interp *interp, NsfObject *object, int withGuards, const char *patternString, NsfObject *patternObject)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjInfoNameMethod(Tcl_Interp *interp, NsfObject *object)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjInfoParentMethod(Tcl_Interp *interp, NsfObject *object)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjInfoPrecedenceMethod(Tcl_Interp *interp, NsfObject *object, int withIntrinsic, const char *pattern)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjInfoSlotobjectsMethod(Tcl_Interp *interp, NsfObject *object, NsfClass *typeClass, const char *pattern)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjInfoVarsMethod(Tcl_Interp *interp, NsfObject *object, const char *pattern)
  NSF_nonnull(1) NSF_nonnull(2);

enum {
 NsfCAllocMethodIdx,
 NsfCCreateMethodIdx,
 NsfCDeallocMethodIdx,
 NsfCFilterGuardMethodIdx,
 NsfCGetCachendParametersMethodIdx,
 NsfCMixinGuardMethodIdx,
 NsfCNewMethodIdx,
 NsfCRecreateMethodIdx,
 NsfCSuperclassMethodIdx,
 NsfClassInfoFilterguardMethodIdx,
 NsfClassInfoFiltersMethodIdx,
 NsfClassInfoForwardMethodIdx,
 NsfClassInfoHeritageMethodIdx,
 NsfClassInfoInstancesMethodIdx,
 NsfClassInfoMethodMethodIdx,
 NsfClassInfoMethodsMethodIdx,
 NsfClassInfoMixinOfMethodIdx,
 NsfClassInfoMixinguardMethodIdx,
 NsfClassInfoMixinsMethodIdx,
 NsfClassInfoSlotobjectsMethodIdx,
 NsfClassInfoSubclassMethodIdx,
 NsfClassInfoSuperclassMethodIdx,
 NsfAsmMethodCreateCmdIdx,
 NsfAsmProcCmdIdx,
 NsfCallgrindDumpStatsCmdIdx,
 NsfCallgrindStartInstrumentationCmdIdx,
 NsfCallgrindStopInstrumentationCmdIdx,
 NsfCallgrindToggleCollectCmdIdx,
 NsfCallgrindZeroStatsCmdIdx,
 NsfCmdInfoCmdIdx,
 NsfColonCmdIdx,
 NsfConfigureCmdIdx,
 NsfCurrentCmdIdx,
 NsfDebugCompileEpochIdx,
 NsfDebugGetDictIdx,
 NsfDebugRunAssertionsCmdIdx,
 NsfDebugShowObjIdx,
 NsfDefinitionNamespaceCmdIdx,
 NsfDirectDispatchCmdIdx,
 NsfDispatchCmdIdx,
 NsfFinalizeCmdIdx,
 NsfForwardPropertyCmdIdx,
 NsfInterpObjCmdIdx,
 NsfIsCmdIdx,
 NsfMethodAliasCmdIdx,
 NsfMethodAssertionCmdIdx,
 NsfMethodCreateCmdIdx,
 NsfMethodDeleteCmdIdx,
 NsfMethodForwardCmdIdx,
 NsfMethodPropertyCmdIdx,
 NsfMethodRegisteredCmdIdx,
 NsfMethodSetterCmdIdx,
 NsfMyCmdIdx,
 NsfNSCopyVarsCmdIdx,
 NsfNextCmdIdx,
 NsfObjectAllocCmdIdx,
 NsfObjectExistsCmdIdx,
 NsfObjectPropertyCmdIdx,
 NsfObjectQualifyCmdIdx,
 NsfObjectSystemCreateCmdIdx,
 NsfParameterCacheClassInvalidateCmdIdx,
 NsfParameterCacheObjectInvalidateCmdIdx,
 NsfParameterInfoCmdIdx,
 NsfParameterSpecsCmdIdx,
 NsfParseArgsCmdIdx,
 NsfProcCmdIdx,
 NsfProfileClearDataStubIdx,
 NsfProfileGetDataStubIdx,
 NsfProfileTraceStubIdx,
 NsfRelationGetCmdIdx,
 NsfRelationSetCmdIdx,
 NsfSelfCmdIdx,
 NsfShowStackCmdIdx,
 NsfUnsetUnknownArgsCmdIdx,
 NsfVarExistsCmdIdx,
 NsfVarGetCmdIdx,
 NsfVarImportCmdIdx,
 NsfVarSetCmdIdx,
 NsfVarUnsetCmdIdx,
 NsfOAutonameMethodIdx,
 NsfOCgetMethodIdx,
 NsfOClassMethodIdx,
 NsfOCleanupMethodIdx,
 NsfOConfigureMethodIdx,
 NsfODestroyMethodIdx,
 NsfOExistsMethodIdx,
 NsfOFilterGuardMethodIdx,
 NsfOInstvarMethodIdx,
 NsfOMixinGuardMethodIdx,
 NsfONoinitMethodIdx,
 NsfORequireNamespaceMethodIdx,
 NsfOResidualargsMethodIdx,
 NsfOUplevelMethodIdx,
 NsfOUpvarMethodIdx,
 NsfOVolatile1MethodIdx,
 NsfOVolatileMethodIdx,
 NsfObjInfoBaseclassMethodIdx,
 NsfObjInfoChildrenMethodIdx,
 NsfObjInfoClassMethodIdx,
 NsfObjInfoFilterguardMethodIdx,
 NsfObjInfoFiltersMethodIdx,
 NsfObjInfoForwardMethodIdx,
 NsfObjInfoHasMixinMethodIdx,
 NsfObjInfoHasTypeMethodIdx,
 NsfObjInfoHasnamespaceMethodIdx,
 NsfObjInfoLookupFilterMethodIdx,
 NsfObjInfoLookupFiltersMethodIdx,
 NsfObjInfoLookupMethodMethodIdx,
 NsfObjInfoLookupMethodsMethodIdx,
 NsfObjInfoLookupMixinsMethodIdx,
 NsfObjInfoLookupSlotsMethodIdx,
 NsfObjInfoMethodMethodIdx,
 NsfObjInfoMethodsMethodIdx,
 NsfObjInfoMixinguardMethodIdx,
 NsfObjInfoMixinsMethodIdx,
 NsfObjInfoNameMethodIdx,
 NsfObjInfoParentMethodIdx,
 NsfObjInfoPrecedenceMethodIdx,
 NsfObjInfoSlotobjectsMethodIdx,
 NsfObjInfoVarsMethodIdx
} NsfMethods;


static int
NsfCAllocMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  NsfClass *class;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  class = NsfObjectToClass(clientData);
  if (unlikely(class == NULL)) {
      return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  }

    

      if (objc != 2) {
	return NsfArgumentError(interp, "wrong # of arguments:",
			     method_definitions[NsfCAllocMethodIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfCAllocMethod(interp, class, objv[1]);

}

static int
NsfCCreateMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfClass *class;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  class = NsfObjectToClass(clientData);
  if (unlikely(class == NULL)) {
      return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  }

  if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) class, objv[0],
                     method_definitions[NsfCCreateMethodIdx].paramDefs,
                     method_definitions[NsfCCreateMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    Tcl_Obj *objectNameObj = (Tcl_Obj *)pc.clientData[0];

    assert(pc.status == 0);
    return NsfCCreateMethod(interp, class, objectNameObj, objc - pc.lastObjc, objv + pc.lastObjc);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfCDeallocMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  NsfClass *class;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  class = NsfObjectToClass(clientData);
  if (unlikely(class == NULL)) {
      return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  }

    

      if (objc != 2) {
	return NsfArgumentError(interp, "wrong # of arguments:",
			     method_definitions[NsfCDeallocMethodIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfCDeallocMethod(interp, class, objv[1]);

}

static int
NsfCFilterGuardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfClass *class;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  class = NsfObjectToClass(clientData);
  if (unlikely(class == NULL)) {
      return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  }

  if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) class, objv[0],
                     method_definitions[NsfCFilterGuardMethodIdx].paramDefs,
                     method_definitions[NsfCFilterGuardMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    const char *filter = (const char *)pc.clientData[0];
    Tcl_Obj *guardObj = (Tcl_Obj *)pc.clientData[1];

    assert(pc.status == 0);
    return NsfCFilterGuardMethod(interp, class, filter, guardObj);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfCGetCachendParametersMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  NsfClass *class;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  class = NsfObjectToClass(clientData);
  if (unlikely(class == NULL)) {
      return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  }

    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfCGetCachendParametersMethodIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfCGetCachendParametersMethod(interp, class);

}

static int
NsfCMixinGuardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfClass *class;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  class = NsfObjectToClass(clientData);
  if (unlikely(class == NULL)) {
      return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  }

  if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) class, objv[0],
                     method_definitions[NsfCMixinGuardMethodIdx].paramDefs,
                     method_definitions[NsfCMixinGuardMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    Tcl_Obj *mixinObj = (Tcl_Obj *)pc.clientData[0];
    Tcl_Obj *guardObj = (Tcl_Obj *)pc.clientData[1];

    assert(pc.status == 0);
    return NsfCMixinGuardMethod(interp, class, mixinObj, guardObj);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfCNewMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfClass *class;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  class = NsfObjectToClass(clientData);
  if (unlikely(class == NULL)) {
      return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  }

  if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) class, objv[0],
                     method_definitions[NsfCNewMethodIdx].paramDefs,
                     method_definitions[NsfCNewMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    Tcl_Obj *childofObj = (Tcl_Obj *)pc.clientData[0];

    assert(pc.status == 0);
    return NsfCNewMethod(interp, class, childofObj, objc - pc.lastObjc, objv + pc.lastObjc);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfCRecreateMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfClass *class;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  class = NsfObjectToClass(clientData);
  if (unlikely(class == NULL)) {
      return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  }

  if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) class, objv[0],
                     method_definitions[NsfCRecreateMethodIdx].paramDefs,
                     method_definitions[NsfCRecreateMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    Tcl_Obj *objectNameObj = (Tcl_Obj *)pc.clientData[0];

    assert(pc.status == 0);
    return NsfCRecreateMethod(interp, class, objectNameObj, objc - pc.lastObjc, objv + pc.lastObjc);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfCSuperclassMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  NsfClass *class;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  class = NsfObjectToClass(clientData);
  if (unlikely(class == NULL)) {
      return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  }

    

      if (objc < 1 || objc > 2) {
	return NsfArgumentError(interp, "wrong # of arguments:",
			     method_definitions[NsfCSuperclassMethodIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfCSuperclassMethod(interp, class, objc == 2 ? objv[1] : NULL);

}

static int
NsfClassInfoFilterguardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfClass *class;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  class = NsfObjectToClass(clientData);
  if (unlikely(class == NULL)) {
      return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  }

  if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) class, objv[0],
                     method_definitions[NsfClassInfoFilterguardMethodIdx].paramDefs,
                     method_definitions[NsfClassInfoFilterguardMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    const char *filter = (const char *)pc.clientData[0];

    assert(pc.status == 0);
    return NsfClassInfoFilterguardMethod(interp, class, filter);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfClassInfoFiltersMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfClass *class;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  class = NsfObjectToClass(clientData);
  if (unlikely(class == NULL)) {
      return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  }

  if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) class, objv[0],
                     method_definitions[NsfClassInfoFiltersMethodIdx].paramDefs,
                     method_definitions[NsfClassInfoFiltersMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withGuards = (int )PTR2INT(pc.clientData[0]);
    const char *pattern = (const char *)pc.clientData[1];

    assert(pc.status == 0);
    return NsfClassInfoFiltersMethod(interp, class, withGuards, pattern);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfClassInfoForwardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfClass *class;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  class = NsfObjectToClass(clientData);
  if (unlikely(class == NULL)) {
      return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  }

  if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) class, objv[0],
                     method_definitions[NsfClassInfoForwardMethodIdx].paramDefs,
                     method_definitions[NsfClassInfoForwardMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withDefinition = (int )PTR2INT(pc.clientData[0]);
    const char *pattern = (const char *)pc.clientData[1];

    assert(pc.status == 0);
    return NsfClassInfoForwardMethod(interp, class, withDefinition, pattern);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfClassInfoHeritageMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfClass *class;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  class = NsfObjectToClass(clientData);
  if (unlikely(class == NULL)) {
      return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  }

  if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) class, objv[0],
                     method_definitions[NsfClassInfoHeritageMethodIdx].paramDefs,
                     method_definitions[NsfClassInfoHeritageMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    const char *pattern = (const char *)pc.clientData[0];

    assert(pc.status == 0);
    return NsfClassInfoHeritageMethod(interp, class, pattern);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfClassInfoInstancesMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfClass *class;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  class = NsfObjectToClass(clientData);
  if (unlikely(class == NULL)) {
      return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  }

  if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) class, objv[0],
                     method_definitions[NsfClassInfoInstancesMethodIdx].paramDefs,
                     method_definitions[NsfClassInfoInstancesMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withClosure = (int )PTR2INT(pc.clientData[0]);
    const char *patternString = NULL;
    NsfObject *patternObject = NULL;
    Tcl_Obj *pattern = (Tcl_Obj *)pc.clientData[1];
    int returnCode;

    if (GetMatchObject(interp, pattern, objc>1 ? objv[1] : NULL, &patternObject, &patternString) == -1) {
      if (pattern) {
        DECR_REF_COUNT2("patternObj", pattern);
      }
      return TCL_OK;
    }
          
    assert(pc.status == 0);
    returnCode = NsfClassInfoInstancesMethod(interp, class, withClosure, patternString, patternObject);

    if (pattern) {
      DECR_REF_COUNT2("patternObj", pattern);
    }
    return returnCode;
  } else {
    Tcl_Obj *pattern = (Tcl_Obj *)pc.clientData[1];

    if (pattern) {
      DECR_REF_COUNT2("patternObj", pattern);
    }
         
    return TCL_ERROR;
  }
}

static int
NsfClassInfoMethodMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfClass *class;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  class = NsfObjectToClass(clientData);
  if (unlikely(class == NULL)) {
      return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  }

  if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) class, objv[0],
                     method_definitions[NsfClassInfoMethodMethodIdx].paramDefs,
                     method_definitions[NsfClassInfoMethodMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    InfomethodsubcmdIdx_t subcmd = (InfomethodsubcmdIdx_t )pc.clientData[0];
    Tcl_Obj *nameObj = (Tcl_Obj *)pc.clientData[1];

    assert(pc.status == 0);
    return NsfClassInfoMethodMethod(interp, class, subcmd, nameObj);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfClassInfoMethodsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfClass *class;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  class = NsfObjectToClass(clientData);
  if (unlikely(class == NULL)) {
      return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  }

  if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) class, objv[0],
                     method_definitions[NsfClassInfoMethodsMethodIdx].paramDefs,
                     method_definitions[NsfClassInfoMethodsMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    CallprotectionIdx_t withCallprotection = (CallprotectionIdx_t )pc.clientData[0];
    int withClosure = (int )PTR2INT(pc.clientData[1]);
    MethodtypeIdx_t withType = (MethodtypeIdx_t )pc.clientData[2];
    int withPath = (int )PTR2INT(pc.clientData[3]);
    DefinitionsourceIdx_t withSource = (DefinitionsourceIdx_t )pc.clientData[4];
    const char *pattern = (const char *)pc.clientData[5];

    assert(pc.status == 0);
    return NsfClassInfoMethodsMethod(interp, class, withCallprotection, withClosure, withType, withPath, withSource, pattern);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfClassInfoMixinOfMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfClass *class;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  class = NsfObjectToClass(clientData);
  if (unlikely(class == NULL)) {
      return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  }

  if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) class, objv[0],
                     method_definitions[NsfClassInfoMixinOfMethodIdx].paramDefs,
                     method_definitions[NsfClassInfoMixinOfMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withClosure = (int )PTR2INT(pc.clientData[0]);
    MixinscopeIdx_t withScope = (MixinscopeIdx_t )pc.clientData[1];
    const char *patternString = NULL;
    NsfObject *patternObject = NULL;
    Tcl_Obj *pattern = (Tcl_Obj *)pc.clientData[2];
    int returnCode;

    if (GetMatchObject(interp, pattern, objc>2 ? objv[2] : NULL, &patternObject, &patternString) == -1) {
      if (pattern) {
        DECR_REF_COUNT2("patternObj", pattern);
      }
      return TCL_OK;
    }
          
    assert(pc.status == 0);
    returnCode = NsfClassInfoMixinOfMethod(interp, class, withClosure, withScope, patternString, patternObject);

    if (pattern) {
      DECR_REF_COUNT2("patternObj", pattern);
    }
    return returnCode;
  } else {
    Tcl_Obj *pattern = (Tcl_Obj *)pc.clientData[2];

    if (pattern) {
      DECR_REF_COUNT2("patternObj", pattern);
    }
         
    return TCL_ERROR;
  }
}

static int
NsfClassInfoMixinguardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfClass *class;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  class = NsfObjectToClass(clientData);
  if (unlikely(class == NULL)) {
      return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  }

  if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) class, objv[0],
                     method_definitions[NsfClassInfoMixinguardMethodIdx].paramDefs,
                     method_definitions[NsfClassInfoMixinguardMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    const char *mixin = (const char *)pc.clientData[0];

    assert(pc.status == 0);
    return NsfClassInfoMixinguardMethod(interp, class, mixin);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfClassInfoMixinsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfClass *class;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  class = NsfObjectToClass(clientData);
  if (unlikely(class == NULL)) {
      return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  }

  if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) class, objv[0],
                     method_definitions[NsfClassInfoMixinsMethodIdx].paramDefs,
                     method_definitions[NsfClassInfoMixinsMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withClosure = (int )PTR2INT(pc.clientData[0]);
    int withGuards = (int )PTR2INT(pc.clientData[1]);
    int withHeritage = (int )PTR2INT(pc.clientData[2]);
    const char *patternString = NULL;
    NsfObject *patternObject = NULL;
    Tcl_Obj *pattern = (Tcl_Obj *)pc.clientData[3];
    int returnCode;

    if (GetMatchObject(interp, pattern, objc>3 ? objv[3] : NULL, &patternObject, &patternString) == -1) {
      if (pattern) {
        DECR_REF_COUNT2("patternObj", pattern);
      }
      return TCL_OK;
    }
          
    assert(pc.status == 0);
    returnCode = NsfClassInfoMixinsMethod(interp, class, withClosure, withGuards, withHeritage, patternString, patternObject);

    if (pattern) {
      DECR_REF_COUNT2("patternObj", pattern);
    }
    return returnCode;
  } else {
    Tcl_Obj *pattern = (Tcl_Obj *)pc.clientData[3];

    if (pattern) {
      DECR_REF_COUNT2("patternObj", pattern);
    }
         
    return TCL_ERROR;
  }
}

static int
NsfClassInfoSlotobjectsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfClass *class;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  class = NsfObjectToClass(clientData);
  if (unlikely(class == NULL)) {
      return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  }

  if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) class, objv[0],
                     method_definitions[NsfClassInfoSlotobjectsMethodIdx].paramDefs,
                     method_definitions[NsfClassInfoSlotobjectsMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withClosure = (int )PTR2INT(pc.clientData[0]);
    DefinitionsourceIdx_t withSource = (DefinitionsourceIdx_t )pc.clientData[1];
    NsfClass *typeClass = (NsfClass *)pc.clientData[2];
    const char *pattern = (const char *)pc.clientData[3];

    assert(pc.status == 0);
    return NsfClassInfoSlotobjectsMethod(interp, class, withClosure, withSource, typeClass, pattern);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfClassInfoSubclassMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfClass *class;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  class = NsfObjectToClass(clientData);
  if (unlikely(class == NULL)) {
      return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  }

  if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) class, objv[0],
                     method_definitions[NsfClassInfoSubclassMethodIdx].paramDefs,
                     method_definitions[NsfClassInfoSubclassMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withClosure = (int )PTR2INT(pc.clientData[0]);
    int withDependent = (int )PTR2INT(pc.clientData[1]);
    const char *patternString = NULL;
    NsfObject *patternObject = NULL;
    Tcl_Obj *pattern = (Tcl_Obj *)pc.clientData[2];
    int returnCode;

    if (GetMatchObject(interp, pattern, objc>2 ? objv[2] : NULL, &patternObject, &patternString) == -1) {
      if (pattern) {
        DECR_REF_COUNT2("patternObj", pattern);
      }
      return TCL_OK;
    }
          
    assert(pc.status == 0);
    returnCode = NsfClassInfoSubclassMethod(interp, class, withClosure, withDependent, patternString, patternObject);

    if (pattern) {
      DECR_REF_COUNT2("patternObj", pattern);
    }
    return returnCode;
  } else {
    Tcl_Obj *pattern = (Tcl_Obj *)pc.clientData[2];

    if (pattern) {
      DECR_REF_COUNT2("patternObj", pattern);
    }
         
    return TCL_ERROR;
  }
}

static int
NsfClassInfoSuperclassMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfClass *class;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  class = NsfObjectToClass(clientData);
  if (unlikely(class == NULL)) {
      return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  }

  if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) class, objv[0],
                     method_definitions[NsfClassInfoSuperclassMethodIdx].paramDefs,
                     method_definitions[NsfClassInfoSuperclassMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withClosure = (int )PTR2INT(pc.clientData[0]);
    Tcl_Obj *patternObj = (Tcl_Obj *)pc.clientData[1];

    assert(pc.status == 0);
    return NsfClassInfoSuperclassMethod(interp, class, withClosure, patternObj);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfAsmMethodCreateCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfAsmMethodCreateCmdIdx].paramDefs,
                     method_definitions[NsfAsmMethodCreateCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfObject *object = (NsfObject *)pc.clientData[0];
    int withCheckalways = (int )PTR2INT(pc.clientData[1]);
    int withInner_namespace = (int )PTR2INT(pc.clientData[2]);
    int withPer_object = (int )PTR2INT(pc.clientData[3]);
    NsfObject *regObject = (NsfObject *)pc.clientData[4];
    Tcl_Obj *methodNameObj = (Tcl_Obj *)pc.clientData[5];
    Tcl_Obj *argumentsObj = (Tcl_Obj *)pc.clientData[6];
    Tcl_Obj *bodyObj = (Tcl_Obj *)pc.clientData[7];

    assert(pc.status == 0);
    return NsfAsmMethodCreateCmd(interp, object, withCheckalways, withInner_namespace, withPer_object, regObject, methodNameObj, argumentsObj, bodyObj);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfAsmProcCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfAsmProcCmdIdx].paramDefs,
                     method_definitions[NsfAsmProcCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withAd = (int )PTR2INT(pc.clientData[0]);
    int withCheckalways = (int )PTR2INT(pc.clientData[1]);
    Tcl_Obj *procNameObj = (Tcl_Obj *)pc.clientData[2];
    Tcl_Obj *argumentsObj = (Tcl_Obj *)pc.clientData[3];
    Tcl_Obj *bodyObj = (Tcl_Obj *)pc.clientData[4];

    assert(pc.status == 0);
    return NsfAsmProcCmd(interp, withAd, withCheckalways, procNameObj, argumentsObj, bodyObj);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfCallgrindDumpStatsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfCallgrindDumpStatsCmdIdx].paramDefs,
                     method_definitions[NsfCallgrindDumpStatsCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    const char *withName = (const char *)pc.clientData[0];

    assert(pc.status == 0);
    return NsfCallgrindDumpStatsCmd(interp, withName);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfCallgrindStartInstrumentationCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  (void)clientData;

    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfCallgrindStartInstrumentationCmdIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfCallgrindStartInstrumentationCmd(interp);

}

static int
NsfCallgrindStopInstrumentationCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  (void)clientData;

    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfCallgrindStopInstrumentationCmdIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfCallgrindStopInstrumentationCmd(interp);

}

static int
NsfCallgrindToggleCollectCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  (void)clientData;

    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfCallgrindToggleCollectCmdIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfCallgrindToggleCollectCmd(interp);

}

static int
NsfCallgrindZeroStatsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  (void)clientData;

    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfCallgrindZeroStatsCmdIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfCallgrindZeroStatsCmd(interp);

}

static int
NsfCmdInfoCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfCmdInfoCmdIdx].paramDefs,
                     method_definitions[NsfCmdInfoCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    InfomethodsubcmdIdx_t subcmd = (InfomethodsubcmdIdx_t )pc.clientData[0];
    NsfObject *contextObject = (NsfObject *)pc.clientData[1];
    Tcl_Obj *methodNameObj = (Tcl_Obj *)pc.clientData[2];
    const char *pattern = (const char *)pc.clientData[3];

    assert(pc.status == 0);
    return NsfCmdInfoCmd(interp, subcmd, contextObject, methodNameObj, pattern);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfColonCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  (void)clientData;

    

    return NsfColonCmd(interp, objc, objv);

}

static int
NsfConfigureCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfConfigureCmdIdx].paramDefs,
                     method_definitions[NsfConfigureCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    ConfigureoptionIdx_t option = (ConfigureoptionIdx_t )pc.clientData[0];
    Tcl_Obj *valueObj = (Tcl_Obj *)pc.clientData[1];

    assert(pc.status == 0);
    return NsfConfigureCmd(interp, option, valueObj);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfCurrentCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfCurrentCmdIdx].paramDefs,
                     method_definitions[NsfCurrentCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    CurrentoptionIdx_t option = (CurrentoptionIdx_t )pc.clientData[0];

    assert(pc.status == 0);
    return NsfCurrentCmd(interp, option);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfDebugCompileEpochStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  (void)clientData;

    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfDebugCompileEpochIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfDebugCompileEpoch(interp);

}

static int
NsfDebugGetDictStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  (void)clientData;

    

      if (objc != 2) {
	return NsfArgumentError(interp, "wrong # of arguments:",
			     method_definitions[NsfDebugGetDictIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfDebugGetDict(interp, objv[1]);

}

static int
NsfDebugRunAssertionsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  (void)clientData;

    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfDebugRunAssertionsCmdIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfDebugRunAssertionsCmd(interp);

}

static int
NsfDebugShowObjStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  (void)clientData;

    

      if (objc != 2) {
	return NsfArgumentError(interp, "wrong # of arguments:",
			     method_definitions[NsfDebugShowObjIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfDebugShowObj(interp, objv[1]);

}

static int
NsfDefinitionNamespaceCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  (void)clientData;

    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfDefinitionNamespaceCmdIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfDefinitionNamespaceCmd(interp);

}

static int
NsfDirectDispatchCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfDirectDispatchCmdIdx].paramDefs,
                     method_definitions[NsfDirectDispatchCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfObject *object = (NsfObject *)pc.clientData[0];
    FrameIdx_t withFrame = (FrameIdx_t )pc.clientData[1];
    Tcl_Obj *commandObj = (Tcl_Obj *)pc.clientData[2];

    assert(pc.status == 0);
    return NsfDirectDispatchCmd(interp, object, withFrame, commandObj, objc - pc.lastObjc, objv + pc.lastObjc);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfDispatchCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfDispatchCmdIdx].paramDefs,
                     method_definitions[NsfDispatchCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfObject *object = (NsfObject *)pc.clientData[0];
    int withIntrinsic = (int )PTR2INT(pc.clientData[1]);
    int withSystem = (int )PTR2INT(pc.clientData[2]);
    Tcl_Obj *commandObj = (Tcl_Obj *)pc.clientData[3];

    assert(pc.status == 0);
    return NsfDispatchCmd(interp, object, withIntrinsic, withSystem, commandObj, objc - pc.lastObjc, objv + pc.lastObjc);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfFinalizeCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfFinalizeCmdIdx].paramDefs,
                     method_definitions[NsfFinalizeCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withKeepvars = (int )PTR2INT(pc.clientData[0]);

    assert(pc.status == 0);
    return NsfFinalizeCmd(interp, withKeepvars);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfForwardPropertyCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfForwardPropertyCmdIdx].paramDefs,
                     method_definitions[NsfForwardPropertyCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfObject *object = (NsfObject *)pc.clientData[0];
    int withPer_object = (int )PTR2INT(pc.clientData[1]);
    Tcl_Obj *methodNameObj = (Tcl_Obj *)pc.clientData[2];
    ForwardpropertyIdx_t forwardProperty = (ForwardpropertyIdx_t )pc.clientData[3];
    Tcl_Obj *valueObj = (Tcl_Obj *)pc.clientData[4];

    assert(pc.status == 0);
    return NsfForwardPropertyCmd(interp, object, withPer_object, methodNameObj, forwardProperty, valueObj);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfInterpObjCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfInterpObjCmdIdx].paramDefs,
                     method_definitions[NsfInterpObjCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    const char *name = (const char *)pc.clientData[0];

    assert(pc.status == 0);
    return NsfInterpObjCmd(interp, name, objc, objv);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfIsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfIsCmdIdx].paramDefs,
                     method_definitions[NsfIsCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withComplain = (int )PTR2INT(pc.clientData[0]);
    int withConfigure = (int )PTR2INT(pc.clientData[1]);
    const char *withName = (const char *)pc.clientData[2];
    Tcl_Obj *constraintObj = (Tcl_Obj *)pc.clientData[3];
    Tcl_Obj *valueObj = (Tcl_Obj *)pc.clientData[4];

    assert(pc.status == 0);
    return NsfIsCmd(interp, withComplain, withConfigure, withName, constraintObj, valueObj);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfMethodAliasCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfMethodAliasCmdIdx].paramDefs,
                     method_definitions[NsfMethodAliasCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfObject *object = (NsfObject *)pc.clientData[0];
    int withPer_object = (int )PTR2INT(pc.clientData[1]);
    const char *methodName = (const char *)pc.clientData[2];
    FrameIdx_t withFrame = (FrameIdx_t )pc.clientData[3];
    ProtectionIdx_t withProtection = (ProtectionIdx_t )pc.clientData[4];
    Tcl_Obj *cmdNameObj = (Tcl_Obj *)pc.clientData[5];

    assert(pc.status == 0);
    return NsfMethodAliasCmd(interp, object, withPer_object, methodName, withFrame, withProtection, cmdNameObj);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfMethodAssertionCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfMethodAssertionCmdIdx].paramDefs,
                     method_definitions[NsfMethodAssertionCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfObject *object = (NsfObject *)pc.clientData[0];
    AssertionsubcmdIdx_t subcmd = (AssertionsubcmdIdx_t )pc.clientData[1];
    Tcl_Obj *argObj = (Tcl_Obj *)pc.clientData[2];

    assert(pc.status == 0);
    return NsfMethodAssertionCmd(interp, object, subcmd, argObj);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfMethodCreateCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfMethodCreateCmdIdx].paramDefs,
                     method_definitions[NsfMethodCreateCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfObject *object = (NsfObject *)pc.clientData[0];
    int withCheckalways = (int )PTR2INT(pc.clientData[1]);
    int withInner_namespace = (int )PTR2INT(pc.clientData[2]);
    int withPer_object = (int )PTR2INT(pc.clientData[3]);
    NsfObject *regObject = (NsfObject *)pc.clientData[4];
    Tcl_Obj *methodNameObj = (Tcl_Obj *)pc.clientData[5];
    Tcl_Obj *argumentsObj = (Tcl_Obj *)pc.clientData[6];
    Tcl_Obj *bodyObj = (Tcl_Obj *)pc.clientData[7];
    Tcl_Obj *preconditionObj = (Tcl_Obj *)pc.clientData[8];
    Tcl_Obj *postconditionObj = (Tcl_Obj *)pc.clientData[9];

    assert(pc.status == 0);
    return NsfMethodCreateCmd(interp, object, withCheckalways, withInner_namespace, withPer_object, regObject, methodNameObj, argumentsObj, bodyObj, preconditionObj, postconditionObj);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfMethodDeleteCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfMethodDeleteCmdIdx].paramDefs,
                     method_definitions[NsfMethodDeleteCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfObject *object = (NsfObject *)pc.clientData[0];
    int withPer_object = (int )PTR2INT(pc.clientData[1]);
    Tcl_Obj *methodNameObj = (Tcl_Obj *)pc.clientData[2];

    assert(pc.status == 0);
    return NsfMethodDeleteCmd(interp, object, withPer_object, methodNameObj);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfMethodForwardCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfMethodForwardCmdIdx].paramDefs,
                     method_definitions[NsfMethodForwardCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfObject *object = (NsfObject *)pc.clientData[0];
    int withPer_object = (int )PTR2INT(pc.clientData[1]);
    Tcl_Obj *methodObj = (Tcl_Obj *)pc.clientData[2];
    Tcl_Obj *defaultObj = (Tcl_Obj *)pc.clientData[3];
    int withEarlybinding = (int )PTR2INT(pc.clientData[4]);
    Tcl_Obj *onerrorObj = (Tcl_Obj *)pc.clientData[5];
    Tcl_Obj *prefixObj = (Tcl_Obj *)pc.clientData[6];
    FrameIdx_t withFrame = (FrameIdx_t )pc.clientData[7];
    int withVerbose = (int )PTR2INT(pc.clientData[8]);
    Tcl_Obj *targetObj = (Tcl_Obj *)pc.clientData[9];

    assert(pc.status == 0);
    return NsfMethodForwardCmd(interp, object, withPer_object, methodObj, defaultObj, withEarlybinding, onerrorObj, prefixObj, withFrame, withVerbose, targetObj, objc - pc.lastObjc, objv + pc.lastObjc);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfMethodPropertyCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfMethodPropertyCmdIdx].paramDefs,
                     method_definitions[NsfMethodPropertyCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfObject *object = (NsfObject *)pc.clientData[0];
    int withPer_object = (int )PTR2INT(pc.clientData[1]);
    Tcl_Obj *methodNameObj = (Tcl_Obj *)pc.clientData[2];
    MethodpropertyIdx_t methodProperty = (MethodpropertyIdx_t )pc.clientData[3];
    Tcl_Obj *valueObj = (Tcl_Obj *)pc.clientData[4];

    assert(pc.status == 0);
    return NsfMethodPropertyCmd(interp, object, withPer_object, methodNameObj, methodProperty, valueObj);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfMethodRegisteredCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  (void)clientData;

    

      if (objc != 2) {
	return NsfArgumentError(interp, "wrong # of arguments:",
			     method_definitions[NsfMethodRegisteredCmdIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfMethodRegisteredCmd(interp, objv[1]);

}

static int
NsfMethodSetterCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfMethodSetterCmdIdx].paramDefs,
                     method_definitions[NsfMethodSetterCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfObject *object = (NsfObject *)pc.clientData[0];
    int withPer_object = (int )PTR2INT(pc.clientData[1]);
    Tcl_Obj *parameterObj = (Tcl_Obj *)pc.clientData[2];

    assert(pc.status == 0);
    return NsfMethodSetterCmd(interp, object, withPer_object, parameterObj);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfMyCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfMyCmdIdx].paramDefs,
                     method_definitions[NsfMyCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withIntrinsic = (int )PTR2INT(pc.clientData[0]);
    int withLocal = (int )PTR2INT(pc.clientData[1]);
    int withSystem = (int )PTR2INT(pc.clientData[2]);
    Tcl_Obj *methodNameObj = (Tcl_Obj *)pc.clientData[3];

    assert(pc.status == 0);
    return NsfMyCmd(interp, withIntrinsic, withLocal, withSystem, methodNameObj, objc - pc.lastObjc, objv + pc.lastObjc);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfNSCopyVarsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfNSCopyVarsCmdIdx].paramDefs,
                     method_definitions[NsfNSCopyVarsCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    Tcl_Obj *fromNsObj = (Tcl_Obj *)pc.clientData[0];
    Tcl_Obj *toNsObj = (Tcl_Obj *)pc.clientData[1];

    assert(pc.status == 0);
    return NsfNSCopyVarsCmd(interp, fromNsObj, toNsObj);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfNextCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  (void)clientData;

    

      if (objc < 1 || objc > 2) {
	return NsfArgumentError(interp, "wrong # of arguments:",
			     method_definitions[NsfNextCmdIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfNextCmd(interp, objc == 2 ? objv[1] : NULL);

}

static int
NsfObjectAllocCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfObjectAllocCmdIdx].paramDefs,
                     method_definitions[NsfObjectAllocCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfClass *class = (NsfClass *)pc.clientData[0];
    Tcl_Obj *nameObj = (Tcl_Obj *)pc.clientData[1];
    Tcl_Obj *initcmdObj = (Tcl_Obj *)pc.clientData[2];

    assert(pc.status == 0);
    return NsfObjectAllocCmd(interp, class, nameObj, initcmdObj);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfObjectExistsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  (void)clientData;

    

      if (objc != 2) {
	return NsfArgumentError(interp, "wrong # of arguments:",
			     method_definitions[NsfObjectExistsCmdIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfObjectExistsCmd(interp, objv[1]);

}

static int
NsfObjectPropertyCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfObjectPropertyCmdIdx].paramDefs,
                     method_definitions[NsfObjectPropertyCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfObject *object = (NsfObject *)pc.clientData[0];
    ObjectpropertyIdx_t objectProperty = (ObjectpropertyIdx_t )pc.clientData[1];
    Tcl_Obj *valueObj = (Tcl_Obj *)pc.clientData[2];

    assert(pc.status == 0);
    return NsfObjectPropertyCmd(interp, object, objectProperty, valueObj);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfObjectQualifyCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  (void)clientData;

    

      if (objc != 2) {
	return NsfArgumentError(interp, "wrong # of arguments:",
			     method_definitions[NsfObjectQualifyCmdIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfObjectQualifyCmd(interp, objv[1]);

}

static int
NsfObjectSystemCreateCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfObjectSystemCreateCmdIdx].paramDefs,
                     method_definitions[NsfObjectSystemCreateCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    Tcl_Obj *rootClassObj = (Tcl_Obj *)pc.clientData[0];
    Tcl_Obj *rootMetaClassObj = (Tcl_Obj *)pc.clientData[1];
    Tcl_Obj *systemMethodsObj = (Tcl_Obj *)pc.clientData[2];

    assert(pc.status == 0);
    return NsfObjectSystemCreateCmd(interp, rootClassObj, rootMetaClassObj, systemMethodsObj);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfParameterCacheClassInvalidateCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfParameterCacheClassInvalidateCmdIdx].paramDefs,
                     method_definitions[NsfParameterCacheClassInvalidateCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfClass *class = (NsfClass *)pc.clientData[0];

    assert(pc.status == 0);
    return NsfParameterCacheClassInvalidateCmd(interp, class);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfParameterCacheObjectInvalidateCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfParameterCacheObjectInvalidateCmdIdx].paramDefs,
                     method_definitions[NsfParameterCacheObjectInvalidateCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfObject *object = (NsfObject *)pc.clientData[0];

    assert(pc.status == 0);
    return NsfParameterCacheObjectInvalidateCmd(interp, object);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfParameterInfoCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfParameterInfoCmdIdx].paramDefs,
                     method_definitions[NsfParameterInfoCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    ParametersubcmdIdx_t subcmd = (ParametersubcmdIdx_t )pc.clientData[0];
    Tcl_Obj *specObj = (Tcl_Obj *)pc.clientData[1];
    Tcl_Obj *varnameObj = (Tcl_Obj *)pc.clientData[2];

    assert(pc.status == 0);
    return NsfParameterInfoCmd(interp, subcmd, specObj, varnameObj);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfParameterSpecsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfParameterSpecsCmdIdx].paramDefs,
                     method_definitions[NsfParameterSpecsCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withConfigure = (int )PTR2INT(pc.clientData[0]);
    int withNonposargs = (int )PTR2INT(pc.clientData[1]);
    Tcl_Obj *slotobjsObj = (Tcl_Obj *)pc.clientData[2];

    assert(pc.status == 0);
    return NsfParameterSpecsCmd(interp, withConfigure, withNonposargs, slotobjsObj);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfParseArgsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfParseArgsCmdIdx].paramDefs,
                     method_definitions[NsfParseArgsCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    Tcl_Obj *argspecObj = (Tcl_Obj *)pc.clientData[0];
    Tcl_Obj *arglistObj = (Tcl_Obj *)pc.clientData[1];

    assert(pc.status == 0);
    return NsfParseArgsCmd(interp, argspecObj, arglistObj);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfProcCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfProcCmdIdx].paramDefs,
                     method_definitions[NsfProcCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withAd = (int )PTR2INT(pc.clientData[0]);
    int withCheckalways = (int )PTR2INT(pc.clientData[1]);
    int withDebug = (int )PTR2INT(pc.clientData[2]);
    int withDeprecated = (int )PTR2INT(pc.clientData[3]);
    Tcl_Obj *procNameObj = (Tcl_Obj *)pc.clientData[4];
    Tcl_Obj *argumentsObj = (Tcl_Obj *)pc.clientData[5];
    Tcl_Obj *bodyObj = (Tcl_Obj *)pc.clientData[6];

    assert(pc.status == 0);
    return NsfProcCmd(interp, withAd, withCheckalways, withDebug, withDeprecated, procNameObj, argumentsObj, bodyObj);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfProfileClearDataStubStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  (void)clientData;

    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfProfileClearDataStubIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfProfileClearDataStub(interp);

}

static int
NsfProfileGetDataStubStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  (void)clientData;

    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfProfileGetDataStubIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfProfileGetDataStub(interp);

}

static int
NsfProfileTraceStubStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfProfileTraceStubIdx].paramDefs,
                     method_definitions[NsfProfileTraceStubIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withEnable = (int )PTR2INT(pc.clientData[0]);
    int withVerbose = (int )PTR2INT(pc.clientData[1]);
    int withDontsave = (int )PTR2INT(pc.clientData[2]);
    Tcl_Obj *builtinsObj = (Tcl_Obj *)pc.clientData[3];

    assert(pc.status == 0);
    return NsfProfileTraceStub(interp, withEnable, withVerbose, withDontsave, builtinsObj);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfRelationGetCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfRelationGetCmdIdx].paramDefs,
                     method_definitions[NsfRelationGetCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfObject *object = (NsfObject *)pc.clientData[0];
    RelationtypeIdx_t type = (RelationtypeIdx_t )pc.clientData[1];

    assert(pc.status == 0);
    return NsfRelationGetCmd(interp, object, type);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfRelationSetCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfRelationSetCmdIdx].paramDefs,
                     method_definitions[NsfRelationSetCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfObject *object = (NsfObject *)pc.clientData[0];
    RelationtypeIdx_t type = (RelationtypeIdx_t )pc.clientData[1];
    Tcl_Obj *valueObj = (Tcl_Obj *)pc.clientData[2];

    assert(pc.status == 0);
    return NsfRelationSetCmd(interp, object, type, valueObj);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfSelfCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  (void)clientData;

    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfSelfCmdIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfSelfCmd(interp);

}

static int
NsfShowStackCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  (void)clientData;

    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfShowStackCmdIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfShowStackCmd(interp);

}

static int
NsfUnsetUnknownArgsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  (void)clientData;

    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfUnsetUnknownArgsCmdIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfUnsetUnknownArgsCmd(interp);

}

static int
NsfVarExistsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfVarExistsCmdIdx].paramDefs,
                     method_definitions[NsfVarExistsCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withArray = (int )PTR2INT(pc.clientData[0]);
    NsfObject *object = (NsfObject *)pc.clientData[1];
    const char *varName = (const char *)pc.clientData[2];

    assert(pc.status == 0);
    return NsfVarExistsCmd(interp, withArray, object, varName);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfVarGetCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfVarGetCmdIdx].paramDefs,
                     method_definitions[NsfVarGetCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withArray = (int )PTR2INT(pc.clientData[0]);
    int withNotrace = (int )PTR2INT(pc.clientData[1]);
    NsfObject *object = (NsfObject *)pc.clientData[2];
    Tcl_Obj *varNameObj = (Tcl_Obj *)pc.clientData[3];

    assert(pc.status == 0);
    return NsfVarGetCmd(interp, withArray, withNotrace, object, varNameObj);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfVarImportCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfVarImportCmdIdx].paramDefs,
                     method_definitions[NsfVarImportCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfObject *object = (NsfObject *)pc.clientData[0];

    assert(pc.status == 0);
    return NsfVarImportCmd(interp, object, objc - pc.lastObjc, objv + pc.lastObjc);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfVarSetCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfVarSetCmdIdx].paramDefs,
                     method_definitions[NsfVarSetCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withArray = (int )PTR2INT(pc.clientData[0]);
    int withNotrace = (int )PTR2INT(pc.clientData[1]);
    NsfObject *object = (NsfObject *)pc.clientData[2];
    Tcl_Obj *varNameObj = (Tcl_Obj *)pc.clientData[3];
    Tcl_Obj *valueObj = (Tcl_Obj *)pc.clientData[4];

    assert(pc.status == 0);
    return NsfVarSetCmd(interp, withArray, withNotrace, object, varNameObj, valueObj);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfVarUnsetCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfVarUnsetCmdIdx].paramDefs,
                     method_definitions[NsfVarUnsetCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withNocomplain = (int )PTR2INT(pc.clientData[0]);
    NsfObject *object = (NsfObject *)pc.clientData[1];
    Tcl_Obj *varNameObj = (Tcl_Obj *)pc.clientData[2];

    assert(pc.status == 0);
    return NsfVarUnsetCmd(interp, withNocomplain, object, varNameObj);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfOAutonameMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, object, objv[0],
                     method_definitions[NsfOAutonameMethodIdx].paramDefs,
                     method_definitions[NsfOAutonameMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withInstance = (int )PTR2INT(pc.clientData[0]);
    int withReset = (int )PTR2INT(pc.clientData[1]);
    Tcl_Obj *nameObj = (Tcl_Obj *)pc.clientData[2];

    assert(pc.status == 0);
    return NsfOAutonameMethod(interp, object, withInstance, withReset, nameObj);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfOCgetMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
    

      if (objc != 2) {
	return NsfArgumentError(interp, "wrong # of arguments:",
			     method_definitions[NsfOCgetMethodIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfOCgetMethod(interp, object, objv[1]);

}

static int
NsfOClassMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
    

      if (objc < 1 || objc > 2) {
	return NsfArgumentError(interp, "wrong # of arguments:",
			     method_definitions[NsfOClassMethodIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfOClassMethod(interp, object, objc == 2 ? objv[1] : NULL);

}

static int
NsfOCleanupMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfOCleanupMethodIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfOCleanupMethod(interp, object);

}

static int
NsfOConfigureMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, object, objv[0],
                     method_definitions[NsfOConfigureMethodIdx].paramDefs,
                     method_definitions[NsfOConfigureMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    

    
    return NsfOConfigureMethod(interp, object, objc - pc.lastObjc, objv + pc.lastObjc, objv[0]);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfODestroyMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfODestroyMethodIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfODestroyMethod(interp, object);

}

static int
NsfOExistsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, object, objv[0],
                     method_definitions[NsfOExistsMethodIdx].paramDefs,
                     method_definitions[NsfOExistsMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    const char *varName = (const char *)pc.clientData[0];

    assert(pc.status == 0);
    return NsfOExistsMethod(interp, object, varName);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfOFilterGuardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, object, objv[0],
                     method_definitions[NsfOFilterGuardMethodIdx].paramDefs,
                     method_definitions[NsfOFilterGuardMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    const char *filter = (const char *)pc.clientData[0];
    Tcl_Obj *guardObj = (Tcl_Obj *)pc.clientData[1];

    assert(pc.status == 0);
    return NsfOFilterGuardMethod(interp, object, filter, guardObj);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfOInstvarMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, object, objv[0],
                     method_definitions[NsfOInstvarMethodIdx].paramDefs,
                     method_definitions[NsfOInstvarMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    

    
    return NsfOInstvarMethod(interp, object, objc, objv);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfOMixinGuardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, object, objv[0],
                     method_definitions[NsfOMixinGuardMethodIdx].paramDefs,
                     method_definitions[NsfOMixinGuardMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    Tcl_Obj *mixinObj = (Tcl_Obj *)pc.clientData[0];
    Tcl_Obj *guardObj = (Tcl_Obj *)pc.clientData[1];

    assert(pc.status == 0);
    return NsfOMixinGuardMethod(interp, object, mixinObj, guardObj);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfONoinitMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfONoinitMethodIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfONoinitMethod(interp, object);

}

static int
NsfORequireNamespaceMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfORequireNamespaceMethodIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfORequireNamespaceMethod(interp, object);

}

static int
NsfOResidualargsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, object, objv[0],
                     method_definitions[NsfOResidualargsMethodIdx].paramDefs,
                     method_definitions[NsfOResidualargsMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    

    
    return NsfOResidualargsMethod(interp, object, objc, objv);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfOUplevelMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, object, objv[0],
                     method_definitions[NsfOUplevelMethodIdx].paramDefs,
                     method_definitions[NsfOUplevelMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    

    
    return NsfOUplevelMethod(interp, object, objc, objv);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfOUpvarMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, object, objv[0],
                     method_definitions[NsfOUpvarMethodIdx].paramDefs,
                     method_definitions[NsfOUpvarMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    

    
    return NsfOUpvarMethod(interp, object, objc, objv);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfOVolatile1MethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfOVolatile1MethodIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfOVolatile1Method(interp, object);

}

static int
NsfOVolatileMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfOVolatileMethodIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfOVolatileMethod(interp, object);

}

static int
NsfObjInfoBaseclassMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfObjInfoBaseclassMethodIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfObjInfoBaseclassMethod(interp, object);

}

static int
NsfObjInfoChildrenMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, object, objv[0],
                     method_definitions[NsfObjInfoChildrenMethodIdx].paramDefs,
                     method_definitions[NsfObjInfoChildrenMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfClass *typeClass = (NsfClass *)pc.clientData[0];
    const char *pattern = (const char *)pc.clientData[1];

    assert(pc.status == 0);
    return NsfObjInfoChildrenMethod(interp, object, typeClass, pattern);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfObjInfoClassMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfObjInfoClassMethodIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfObjInfoClassMethod(interp, object);

}

static int
NsfObjInfoFilterguardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, object, objv[0],
                     method_definitions[NsfObjInfoFilterguardMethodIdx].paramDefs,
                     method_definitions[NsfObjInfoFilterguardMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    const char *filter = (const char *)pc.clientData[0];

    assert(pc.status == 0);
    return NsfObjInfoFilterguardMethod(interp, object, filter);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfObjInfoFiltersMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, object, objv[0],
                     method_definitions[NsfObjInfoFiltersMethodIdx].paramDefs,
                     method_definitions[NsfObjInfoFiltersMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withGuards = (int )PTR2INT(pc.clientData[0]);
    const char *pattern = (const char *)pc.clientData[1];

    assert(pc.status == 0);
    return NsfObjInfoFiltersMethod(interp, object, withGuards, pattern);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfObjInfoForwardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, object, objv[0],
                     method_definitions[NsfObjInfoForwardMethodIdx].paramDefs,
                     method_definitions[NsfObjInfoForwardMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withDefinition = (int )PTR2INT(pc.clientData[0]);
    const char *pattern = (const char *)pc.clientData[1];

    assert(pc.status == 0);
    return NsfObjInfoForwardMethod(interp, object, withDefinition, pattern);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfObjInfoHasMixinMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, object, objv[0],
                     method_definitions[NsfObjInfoHasMixinMethodIdx].paramDefs,
                     method_definitions[NsfObjInfoHasMixinMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfClass *class = (NsfClass *)pc.clientData[0];

    assert(pc.status == 0);
    return NsfObjInfoHasMixinMethod(interp, object, class);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfObjInfoHasTypeMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, object, objv[0],
                     method_definitions[NsfObjInfoHasTypeMethodIdx].paramDefs,
                     method_definitions[NsfObjInfoHasTypeMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfClass *class = (NsfClass *)pc.clientData[0];

    assert(pc.status == 0);
    return NsfObjInfoHasTypeMethod(interp, object, class);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfObjInfoHasnamespaceMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfObjInfoHasnamespaceMethodIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfObjInfoHasnamespaceMethod(interp, object);

}

static int
NsfObjInfoLookupFilterMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, object, objv[0],
                     method_definitions[NsfObjInfoLookupFilterMethodIdx].paramDefs,
                     method_definitions[NsfObjInfoLookupFilterMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    const char *filter = (const char *)pc.clientData[0];

    assert(pc.status == 0);
    return NsfObjInfoLookupFilterMethod(interp, object, filter);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfObjInfoLookupFiltersMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, object, objv[0],
                     method_definitions[NsfObjInfoLookupFiltersMethodIdx].paramDefs,
                     method_definitions[NsfObjInfoLookupFiltersMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withGuards = (int )PTR2INT(pc.clientData[0]);
    const char *pattern = (const char *)pc.clientData[1];

    assert(pc.status == 0);
    return NsfObjInfoLookupFiltersMethod(interp, object, withGuards, pattern);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfObjInfoLookupMethodMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
    

      if (objc != 2) {
	return NsfArgumentError(interp, "wrong # of arguments:",
			     method_definitions[NsfObjInfoLookupMethodMethodIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfObjInfoLookupMethodMethod(interp, object, objv[1]);

}

static int
NsfObjInfoLookupMethodsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, object, objv[0],
                     method_definitions[NsfObjInfoLookupMethodsMethodIdx].paramDefs,
                     method_definitions[NsfObjInfoLookupMethodsMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    CallprotectionIdx_t withCallprotection = (CallprotectionIdx_t )pc.clientData[0];
    int withIncontext = (int )PTR2INT(pc.clientData[1]);
    MethodtypeIdx_t withType = (MethodtypeIdx_t )pc.clientData[2];
    int withNomixins = (int )PTR2INT(pc.clientData[3]);
    int withPath = (int )PTR2INT(pc.clientData[4]);
    DefinitionsourceIdx_t withSource = (DefinitionsourceIdx_t )pc.clientData[5];
    const char *pattern = (const char *)pc.clientData[6];

    assert(pc.status == 0);
    return NsfObjInfoLookupMethodsMethod(interp, object, withCallprotection, withIncontext, withType, withNomixins, withPath, withSource, pattern);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfObjInfoLookupMixinsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, object, objv[0],
                     method_definitions[NsfObjInfoLookupMixinsMethodIdx].paramDefs,
                     method_definitions[NsfObjInfoLookupMixinsMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withGuards = (int )PTR2INT(pc.clientData[0]);
    const char *patternString = NULL;
    NsfObject *patternObject = NULL;
    Tcl_Obj *pattern = (Tcl_Obj *)pc.clientData[1];
    int returnCode;

    if (GetMatchObject(interp, pattern, objc>1 ? objv[1] : NULL, &patternObject, &patternString) == -1) {
      if (pattern) {
        DECR_REF_COUNT2("patternObj", pattern);
      }
      return TCL_OK;
    }
          
    assert(pc.status == 0);
    returnCode = NsfObjInfoLookupMixinsMethod(interp, object, withGuards, patternString, patternObject);

    if (pattern) {
      DECR_REF_COUNT2("patternObj", pattern);
    }
    return returnCode;
  } else {
    Tcl_Obj *pattern = (Tcl_Obj *)pc.clientData[1];

    if (pattern) {
      DECR_REF_COUNT2("patternObj", pattern);
    }
         
    return TCL_ERROR;
  }
}

static int
NsfObjInfoLookupSlotsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, object, objv[0],
                     method_definitions[NsfObjInfoLookupSlotsMethodIdx].paramDefs,
                     method_definitions[NsfObjInfoLookupSlotsMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    DefinitionsourceIdx_t withSource = (DefinitionsourceIdx_t )pc.clientData[0];
    NsfClass *typeClass = (NsfClass *)pc.clientData[1];
    const char *pattern = (const char *)pc.clientData[2];

    assert(pc.status == 0);
    return NsfObjInfoLookupSlotsMethod(interp, object, withSource, typeClass, pattern);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfObjInfoMethodMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, object, objv[0],
                     method_definitions[NsfObjInfoMethodMethodIdx].paramDefs,
                     method_definitions[NsfObjInfoMethodMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    InfomethodsubcmdIdx_t subcmd = (InfomethodsubcmdIdx_t )pc.clientData[0];
    Tcl_Obj *nameObj = (Tcl_Obj *)pc.clientData[1];

    assert(pc.status == 0);
    return NsfObjInfoMethodMethod(interp, object, subcmd, nameObj);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfObjInfoMethodsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, object, objv[0],
                     method_definitions[NsfObjInfoMethodsMethodIdx].paramDefs,
                     method_definitions[NsfObjInfoMethodsMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    CallprotectionIdx_t withCallprotection = (CallprotectionIdx_t )pc.clientData[0];
    MethodtypeIdx_t withType = (MethodtypeIdx_t )pc.clientData[1];
    int withPath = (int )PTR2INT(pc.clientData[2]);
    const char *pattern = (const char *)pc.clientData[3];

    assert(pc.status == 0);
    return NsfObjInfoMethodsMethod(interp, object, withCallprotection, withType, withPath, pattern);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfObjInfoMixinguardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, object, objv[0],
                     method_definitions[NsfObjInfoMixinguardMethodIdx].paramDefs,
                     method_definitions[NsfObjInfoMixinguardMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    const char *mixin = (const char *)pc.clientData[0];

    assert(pc.status == 0);
    return NsfObjInfoMixinguardMethod(interp, object, mixin);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfObjInfoMixinsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, object, objv[0],
                     method_definitions[NsfObjInfoMixinsMethodIdx].paramDefs,
                     method_definitions[NsfObjInfoMixinsMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withGuards = (int )PTR2INT(pc.clientData[0]);
    const char *patternString = NULL;
    NsfObject *patternObject = NULL;
    Tcl_Obj *pattern = (Tcl_Obj *)pc.clientData[1];
    int returnCode;

    if (GetMatchObject(interp, pattern, objc>1 ? objv[1] : NULL, &patternObject, &patternString) == -1) {
      if (pattern) {
        DECR_REF_COUNT2("patternObj", pattern);
      }
      return TCL_OK;
    }
          
    assert(pc.status == 0);
    returnCode = NsfObjInfoMixinsMethod(interp, object, withGuards, patternString, patternObject);

    if (pattern) {
      DECR_REF_COUNT2("patternObj", pattern);
    }
    return returnCode;
  } else {
    Tcl_Obj *pattern = (Tcl_Obj *)pc.clientData[1];

    if (pattern) {
      DECR_REF_COUNT2("patternObj", pattern);
    }
         
    return TCL_ERROR;
  }
}

static int
NsfObjInfoNameMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfObjInfoNameMethodIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfObjInfoNameMethod(interp, object);

}

static int
NsfObjInfoParentMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfObjInfoParentMethodIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfObjInfoParentMethod(interp, object);

}

static int
NsfObjInfoPrecedenceMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, object, objv[0],
                     method_definitions[NsfObjInfoPrecedenceMethodIdx].paramDefs,
                     method_definitions[NsfObjInfoPrecedenceMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withIntrinsic = (int )PTR2INT(pc.clientData[0]);
    const char *pattern = (const char *)pc.clientData[1];

    assert(pc.status == 0);
    return NsfObjInfoPrecedenceMethod(interp, object, withIntrinsic, pattern);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfObjInfoSlotobjectsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, object, objv[0],
                     method_definitions[NsfObjInfoSlotobjectsMethodIdx].paramDefs,
                     method_definitions[NsfObjInfoSlotobjectsMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfClass *typeClass = (NsfClass *)pc.clientData[0];
    const char *pattern = (const char *)pc.clientData[1];

    assert(pc.status == 0);
    return NsfObjInfoSlotobjectsMethod(interp, object, typeClass, pattern);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfObjInfoVarsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) {
  ParseContext pc;
  NsfObject *object;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  object = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, object, objv[0],
                     method_definitions[NsfObjInfoVarsMethodIdx].paramDefs,
                     method_definitions[NsfObjInfoVarsMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    const char *pattern = (const char *)pc.clientData[0];

    assert(pc.status == 0);
    return NsfObjInfoVarsMethod(interp, object, pattern);

  } else {
    
    return TCL_ERROR;
  }
}

static Nsf_methodDefinition method_definitions[121] = {
{"::nsf::methods::class::alloc", NsfCAllocMethodStub, 1, {
  {"objectName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::create", NsfCCreateMethodStub, 2, {
  {"objectName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"args", 0, 1, ConvertToNothing, NULL,NULL,"virtualclassargs",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::dealloc", NsfCDeallocMethodStub, 1, {
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::filterguard", NsfCFilterGuardMethodStub, 2, {
  {"filter", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"guard", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::getCachedParameters", NsfCGetCachendParametersMethodStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::mixinguard", NsfCMixinGuardMethodStub, 2, {
  {"mixin", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"guard", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::new", NsfCNewMethodStub, 2, {
  {"-childof", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"args", 0, 1, ConvertToNothing, NULL,NULL,"virtualclassargs",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::recreate", NsfCRecreateMethodStub, 2, {
  {"objectName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"args", 0, 1, ConvertToNothing, NULL,NULL,"virtualclassargs",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::superclass", NsfCSuperclassMethodStub, 1, {
  {"superclasses", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::info::filterguard", NsfClassInfoFilterguardMethodStub, 1, {
  {"filter", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::info::filters", NsfClassInfoFiltersMethodStub, 2, {
  {"-guards", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::info::forward", NsfClassInfoForwardMethodStub, 2, {
  {"-definition", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::info::heritage", NsfClassInfoHeritageMethodStub, 1, {
  {"pattern", 0, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::info::instances", NsfClassInfoInstancesMethodStub, 2, {
  {"-closure", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, ConvertToObjpattern, NULL,NULL,"objpattern",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::info::method", NsfClassInfoMethodMethodStub, 2, {
  {"subcmd", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 1, ConvertToInfomethodsubcmd, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"name", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::info::methods", NsfClassInfoMethodsMethodStub, 6, {
  {"-callprotection", NSF_ARG_IS_ENUMERATION, 1, ConvertToCallprotection, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"-closure", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-type", NSF_ARG_IS_ENUMERATION, 1, ConvertToMethodtype, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"-path", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-source", NSF_ARG_IS_ENUMERATION, 1, ConvertToDefinitionsource, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::info::mixinof", NsfClassInfoMixinOfMethodStub, 3, {
  {"-closure", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-scope", NSF_ARG_IS_ENUMERATION, 1, ConvertToMixinscope, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, ConvertToObjpattern, NULL,NULL,"objpattern",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::info::mixinguard", NsfClassInfoMixinguardMethodStub, 1, {
  {"mixin", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::info::mixins", NsfClassInfoMixinsMethodStub, 4, {
  {"-closure", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-guards", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-heritage", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, ConvertToObjpattern, NULL,NULL,"objpattern",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::info::slotobjects", NsfClassInfoSlotobjectsMethodStub, 4, {
  {"-closure", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-source", NSF_ARG_IS_ENUMERATION, 1, ConvertToDefinitionsource, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"-type", 0, 1, Nsf_ConvertTo_Class, NULL,NULL,"class",NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::info::subclass", NsfClassInfoSubclassMethodStub, 3, {
  {"-closure", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-dependent", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"pattern", NSF_ARG_NODASHALNUM, 1, ConvertToObjpattern, NULL,NULL,"objpattern",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::info::superclass", NsfClassInfoSuperclassMethodStub, 2, {
  {"-closure", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::method::asmcreate", NsfAsmMethodCreateCmdStub, 8, {
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"-checkalways", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-inner-namespace", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-per-object", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-reg-object", 0, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"methodName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"arguments", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"body", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::asm::proc", NsfAsmProcCmdStub, 5, {
  {"-ad", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-checkalways", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"procName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"arguments", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"body", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::__callgrind_dump_stats", NsfCallgrindDumpStatsCmdStub, 1, {
  {"-name", 0, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::__callgrind_start_instrumentation", NsfCallgrindStartInstrumentationCmdStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::__callgrind_stop_instrumentation", NsfCallgrindStopInstrumentationCmdStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::__callgrind_toggle_collect", NsfCallgrindToggleCollectCmdStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::__callgrind_zero_stats", NsfCallgrindZeroStatsCmdStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::cmd::info", NsfCmdInfoCmdStub, 4, {
  {"subcmd", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 1, ConvertToInfomethodsubcmd, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"-context", 0, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"methodName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::colon", NsfColonCmdStub, 1, {
  {"args", 0, 1, ConvertToNothing, NULL,NULL,"allargs",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::configure", NsfConfigureCmdStub, 2, {
  {"option", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 1, ConvertToConfigureoption, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"value", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::current", NsfCurrentCmdStub, 1, {
  {"option", NSF_ARG_IS_ENUMERATION, 1, ConvertToCurrentoption, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::__db_compile_epoch", NsfDebugCompileEpochStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::__db_get_obj", NsfDebugGetDictStub, 1, {
  {"obj", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::__db_run_assertions", NsfDebugRunAssertionsCmdStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::__db_show_obj", NsfDebugShowObjStub, 1, {
  {"obj", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::definitionnamespace", NsfDefinitionNamespaceCmdStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::directdispatch", NsfDirectDispatchCmdStub, 4, {
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"-frame", NSF_ARG_IS_ENUMERATION, 1, ConvertToFrame, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"command", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"args", 0, 1, ConvertToNothing, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::dispatch", NsfDispatchCmdStub, 5, {
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"-intrinsic", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-system", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"command", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"args", 0, 1, ConvertToNothing, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::finalize", NsfFinalizeCmdStub, 1, {
  {"-keepvars", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::method::forward::property", NsfForwardPropertyCmdStub, 5, {
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"-per-object", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"methodName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"forwardProperty", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 1, ConvertToForwardproperty, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"value", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::interp", NsfInterpObjCmdStub, 2, {
  {"name", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"args", 0, 1, ConvertToNothing, NULL,NULL,"allargs",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::is", NsfIsCmdStub, 5, {
  {"-complain", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-configure", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-name", 0, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"constraint", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"value", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::method::alias", NsfMethodAliasCmdStub, 6, {
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"-per-object", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"methodName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"-frame", NSF_ARG_IS_ENUMERATION, 1, ConvertToFrame, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"-protection", NSF_ARG_IS_ENUMERATION, 1, ConvertToProtection, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"cmdName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::method::assertion", NsfMethodAssertionCmdStub, 3, {
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"subcmd", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 1, ConvertToAssertionsubcmd, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"arg", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::method::create", NsfMethodCreateCmdStub, 10, {
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"-checkalways", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-inner-namespace", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-per-object", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-reg-object", 0, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"methodName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"arguments", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"body", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"-precondition", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"-postcondition", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::method::delete", NsfMethodDeleteCmdStub, 3, {
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"-per-object", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"methodName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::method::forward", NsfMethodForwardCmdStub, 11, {
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"-per-object", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"method", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"-default", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"-earlybinding", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-onerror", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"-prefix", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"-frame", NSF_ARG_IS_ENUMERATION, 1, ConvertToFrame, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"-verbose", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"target", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"args", 0, 1, ConvertToNothing, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::method::property", NsfMethodPropertyCmdStub, 5, {
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"-per-object", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"methodName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"methodProperty", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 1, ConvertToMethodproperty, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"value", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::method::registered", NsfMethodRegisteredCmdStub, 1, {
  {"handle", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::method::setter", NsfMethodSetterCmdStub, 3, {
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"-per-object", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"parameter", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::my", NsfMyCmdStub, 5, {
  {"-intrinsic", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-local", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-system", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"methodName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"args", 0, 1, ConvertToNothing, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::nscopyvars", NsfNSCopyVarsCmdStub, 2, {
  {"fromNs", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"toNs", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::next", NsfNextCmdStub, 1, {
  {"arguments", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::object::alloc", NsfObjectAllocCmdStub, 3, {
  {"class", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Class, NULL,NULL,"class",NULL,NULL,NULL,NULL,NULL},
  {"name", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"initcmd", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::object::exists", NsfObjectExistsCmdStub, 1, {
  {"value", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::object::property", NsfObjectPropertyCmdStub, 3, {
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"objectProperty", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 1, ConvertToObjectproperty, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"value", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::object::qualify", NsfObjectQualifyCmdStub, 1, {
  {"objectName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::objectsystem::create", NsfObjectSystemCreateCmdStub, 3, {
  {"rootClass", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"rootMetaClass", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"systemMethods", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::parameter::cache::classinvalidate", NsfParameterCacheClassInvalidateCmdStub, 1, {
  {"class", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Class, NULL,NULL,"class",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::parameter::cache::objectinvalidate", NsfParameterCacheObjectInvalidateCmdStub, 1, {
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::parameter::info", NsfParameterInfoCmdStub, 3, {
  {"subcmd", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 1, ConvertToParametersubcmd, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"spec", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"varname", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::parameter::specs", NsfParameterSpecsCmdStub, 3, {
  {"-configure", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-nonposargs", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"slotobjs", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::parseargs", NsfParseArgsCmdStub, 2, {
  {"argspec", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"arglist", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::proc", NsfProcCmdStub, 7, {
  {"-ad", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-checkalways", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-debug", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-deprecated", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"procName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"arguments", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"body", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::__profile_clear", NsfProfileClearDataStubStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::__profile_get", NsfProfileGetDataStubStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::__profile_trace", NsfProfileTraceStubStub, 4, {
  {"-enable", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Boolean, NULL,NULL,"boolean",NULL,NULL,NULL,NULL,NULL},
  {"-verbose", 0, 1, Nsf_ConvertTo_Boolean, NULL,NULL,"boolean",NULL,NULL,NULL,NULL,NULL},
  {"-dontsave", 0, 1, Nsf_ConvertTo_Boolean, NULL,NULL,"boolean",NULL,NULL,NULL,NULL,NULL},
  {"-builtins", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::relation::get", NsfRelationGetCmdStub, 2, {
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"type", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 1, ConvertToRelationtype, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::relation::set", NsfRelationSetCmdStub, 3, {
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"type", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 1, ConvertToRelationtype, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"value", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::self", NsfSelfCmdStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::__db_show_stack", NsfShowStackCmdStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::__unset_unknown_args", NsfUnsetUnknownArgsCmdStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::var::exists", NsfVarExistsCmdStub, 3, {
  {"-array", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"varName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::var::get", NsfVarGetCmdStub, 4, {
  {"-array", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-notrace", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"varName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::var::import", NsfVarImportCmdStub, 2, {
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"args", 0, 1, ConvertToNothing, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::var::set", NsfVarSetCmdStub, 5, {
  {"-array", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-notrace", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"varName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"value", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::var::unset", NsfVarUnsetCmdStub, 3, {
  {"-nocomplain", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"varName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::autoname", NsfOAutonameMethodStub, 3, {
  {"-instance", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-reset", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"name", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::cget", NsfOCgetMethodStub, 1, {
  {"name", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::class", NsfOClassMethodStub, 1, {
  {"class", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::cleanup", NsfOCleanupMethodStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::configure", NsfOConfigureMethodStub, 1, {
  {"args", 0, 1, ConvertToNothing, NULL,NULL,"virtualobjectargs",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::destroy", NsfODestroyMethodStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::exists", NsfOExistsMethodStub, 1, {
  {"varName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::filterguard", NsfOFilterGuardMethodStub, 2, {
  {"filter", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"guard", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::instvar", NsfOInstvarMethodStub, 1, {
  {"args", 0, 1, ConvertToNothing, NULL,NULL,"allargs",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::mixinguard", NsfOMixinGuardMethodStub, 2, {
  {"mixin", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"guard", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::noinit", NsfONoinitMethodStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::requirenamespace", NsfORequireNamespaceMethodStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::residualargs", NsfOResidualargsMethodStub, 1, {
  {"args", 0, 1, ConvertToNothing, NULL,NULL,"allargs",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::uplevel", NsfOUplevelMethodStub, 1, {
  {"args", 0, 1, ConvertToNothing, NULL,NULL,"allargs",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::upvar", NsfOUpvarMethodStub, 1, {
  {"args", 0, 1, ConvertToNothing, NULL,NULL,"allargs",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::volatile1", NsfOVolatile1MethodStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::volatile", NsfOVolatileMethodStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::baseclass", NsfObjInfoBaseclassMethodStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::children", NsfObjInfoChildrenMethodStub, 2, {
  {"-type", 0, 1, Nsf_ConvertTo_Class, NULL,NULL,"class",NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::class", NsfObjInfoClassMethodStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::filterguard", NsfObjInfoFilterguardMethodStub, 1, {
  {"filter", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::filters", NsfObjInfoFiltersMethodStub, 2, {
  {"-guards", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::forward", NsfObjInfoForwardMethodStub, 2, {
  {"-definition", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::hasmixin", NsfObjInfoHasMixinMethodStub, 1, {
  {"class", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Class, NULL,NULL,"class",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::hastype", NsfObjInfoHasTypeMethodStub, 1, {
  {"class", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Class, NULL,NULL,"class",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::hasnamespace", NsfObjInfoHasnamespaceMethodStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::lookupfilter", NsfObjInfoLookupFilterMethodStub, 1, {
  {"filter", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::lookupfilters", NsfObjInfoLookupFiltersMethodStub, 2, {
  {"-guards", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::lookupmethod", NsfObjInfoLookupMethodMethodStub, 1, {
  {"name", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::lookupmethods", NsfObjInfoLookupMethodsMethodStub, 7, {
  {"-callprotection", NSF_ARG_IS_ENUMERATION, 1, ConvertToCallprotection, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"-incontext", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-type", NSF_ARG_IS_ENUMERATION, 1, ConvertToMethodtype, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"-nomixins", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-path", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-source", NSF_ARG_IS_ENUMERATION, 1, ConvertToDefinitionsource, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::lookupmixins", NsfObjInfoLookupMixinsMethodStub, 2, {
  {"-guards", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, ConvertToObjpattern, NULL,NULL,"objpattern",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::lookupslots", NsfObjInfoLookupSlotsMethodStub, 3, {
  {"-source", NSF_ARG_IS_ENUMERATION, 1, ConvertToDefinitionsource, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"-type", 0, 1, Nsf_ConvertTo_Class, NULL,NULL,"class",NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::method", NsfObjInfoMethodMethodStub, 2, {
  {"subcmd", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 1, ConvertToInfomethodsubcmd, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"name", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::methods", NsfObjInfoMethodsMethodStub, 4, {
  {"-callprotection", NSF_ARG_IS_ENUMERATION, 1, ConvertToCallprotection, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"-type", NSF_ARG_IS_ENUMERATION, 1, ConvertToMethodtype, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"-path", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::mixinguard", NsfObjInfoMixinguardMethodStub, 1, {
  {"mixin", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::mixins", NsfObjInfoMixinsMethodStub, 2, {
  {"-guards", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, ConvertToObjpattern, NULL,NULL,"objpattern",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::name", NsfObjInfoNameMethodStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::parent", NsfObjInfoParentMethodStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::precedence", NsfObjInfoPrecedenceMethodStub, 2, {
  {"-intrinsic", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::slotobjects", NsfObjInfoSlotobjectsMethodStub, 2, {
  {"-type", 0, 1, Nsf_ConvertTo_Class, NULL,NULL,"class",NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::vars", NsfObjInfoVarsMethodStub, 1, {
  {"pattern", 0, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{NULL, NULL, 0, {{NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}}
};

