Index: TODO =================================================================== diff -u -rb9444659be7050e31855b0dfc3789087ee62a274 -rbf592f968ae84740d9ef7c40cddbcbf9f5a68283 --- TODO (.../TODO) (revision b9444659be7050e31855b0dfc3789087ee62a274) +++ TODO (.../TODO) (revision bf592f968ae84740d9ef7c40cddbcbf9f5a68283) @@ -2557,10 +2557,26 @@ - nsf.c: make sure, validCscPtr is always initialized - tested all regression tests with valgrind against tcl-trunk +- gentclAPI.tcl: + * renamed "nsfCmd" to simply "cmd", since the code can generate arbitrary + tcl commands + * allow type "int" in the .decls files +- nsf.c + * move several functions from "static" to "external" to make + the code generator usable for submodules as well + TODO: - maybe the destructor of a slot should remove the setter/forwarder - how to delete attributes? +- Higher binary compatibility for future versions: + * It is not nice to have the full Nsf_Param structure in nsf.h + (required for Nsf_methodDefinition in the c code generator) + * It is not nice to have the full ParseContext structure in nsfmongo + (required for the allocation of the parse context in the stubs) + Adding fields to these structures would kill alder binaries +- not all converters are already external symbols + - when alloc|dealloc are loaded via require, we have no redefined-protection on those. Since the script does not know, on which class|object these are defined one cannot make assumption Index: generic/gentclAPI.decls =================================================================== diff -u -r3b7a544e17d23c11227445e2949b94b953fc312c -rbf592f968ae84740d9ef7c40cddbcbf9f5a68283 --- generic/gentclAPI.decls (.../gentclAPI.decls) (revision 3b7a544e17d23c11227445e2949b94b953fc312c) +++ generic/gentclAPI.decls (.../gentclAPI.decls) (revision bf592f968ae84740d9ef7c40cddbcbf9f5a68283) @@ -6,71 +6,70 @@ # namespaces for types of methods array set ns { - nsfCmd "::nsf" + cmd "::nsf" objectMethod "::nsf::methods::object" objectInfoMethod "::nsf::methods::object::info" classMethod "::nsf::methods::class" classInfoMethod "::nsf::methods::class::info" - checkMethod "::nsf::cmd::ParameterType" } # # Next Scripting commands # -nsfCmd __db_show_stack NsfShowStackCmd {} -nsfCmd __db_run_assertions NsfDebugRunAssertionsCmd {} -nsfCmd __profile_clear NsfProfileClearDataStub {} -nsfCmd __profile_get NsfProfileGetDataStub {} +cmd __db_show_stack NsfShowStackCmd {} +cmd __db_run_assertions NsfDebugRunAssertionsCmd {} +cmd __profile_clear NsfProfileClearDataStub {} +cmd __profile_get NsfProfileGetDataStub {} -nsfCmd configure NsfConfigureCmd { +cmd configure NsfConfigureCmd { {-argName "configureoption" -required 1 -type "debug|dtrace|filter|profile|softrecreate|objectsystems|keepinitcmd|checkresults|checkarguments"} {-argName "value" -required 0 -type tclobj} } -nsfCmd createobjectsystem NsfCreateObjectSystemCmd { +cmd createobjectsystem NsfCreateObjectSystemCmd { {-argName "rootClass" -required 1 -type tclobj} {-argName "rootMetaClass" -required 1 -type tclobj} {-argName "systemMethods" -required 0 -type tclobj} } -nsfCmd dispatch NsfDispatchCmd { +cmd dispatch NsfDispatchCmd { {-argName "object" -required 1 -type object} {-argName "-frame" -required 0 -nrargs 1 -type "method|object|default" -default "default"} {-argName "command" -required 1 -type tclobj} {-argName "args" -type args} } -nsfCmd colon NsfColonCmd { +cmd colon NsfColonCmd { {-argName "args" -type allargs} } -nsfCmd finalize NsfFinalizeObjCmd { +cmd finalize NsfFinalizeObjCmd { } -nsfCmd interp NsfInterpObjCmd { +cmd interp NsfInterpObjCmd { {-argName "name" -required 1} {-argName "args" -type allargs} } -nsfCmd invalidateobjectparameter NsfInvalidateObjectParameterCmd { +cmd invalidateobjectparameter NsfInvalidateObjectParameterCmd { {-argName "class" -required 1 -type class} } -nsfCmd is NsfIsCmd { +cmd is NsfIsCmd { {-argName "-complain"} {-argName "constraint" -required 1 -type tclobj} {-argName "value" -required 1 -type tclobj} } -nsfCmd isobject NsfIsObjectCmd { +cmd isobject NsfIsObjectCmd { {-argName "value" -required 1 -type tclobj} } -nsfCmd "method::alias" NsfAliasCmd { +cmd "method::alias" NsfAliasCmd { {-argName "object" -required 1 -type object} {-argName "-per-object" -required 0} {-argName "methodName" -required 1} {-argName "-frame" -required 0 -nrargs 1 -type "method|object|default" -default "default"} {-argName "cmdName" -required 1 -type tclobj} } -nsfCmd "method::assertion" NsfAssertionCmd { +cmd "method::assertion" NsfAssertionCmd { {-argName "object" -required 1 -type object} {-argName "assertionsubcmd" -required 1 -nrargs 1 -type "check|object-invar|class-invar"} {-argName "arg" -required 0 -type tclobj} } -nsfCmd "method::create" NsfMethodCmd { +cmd "method::create" NsfMethodCmd { {-argName "object" -required 1 -type object} {-argName "-inner-namespace"} {-argName "-per-object"} @@ -80,7 +79,7 @@ {-argName "-precondition" -nrargs 1 -type tclobj} {-argName "-postcondition" -nrargs 1 -type tclobj} } -nsfCmd "method::forward" NsfForwardCmd { +cmd "method::forward" NsfForwardCmd { {-argName "object" -required 1 -type object} {-argName "-per-object"} {-argName "method" -required 1 -type tclobj} @@ -93,67 +92,67 @@ {-argName "target" -type tclobj} {-argName "args" -type args} } -nsfCmd "method::property" NsfMethodPropertyCmd { +cmd "method::property" NsfMethodPropertyCmd { {-argName "object" -required 1 -type object} {-argName "-per-object"} {-argName "methodName" -required 1 -type tclobj} {-argName "methodproperty" -required 1 -type "class-only|call-protected|redefine-protected|returns|slotcontainer|slotobj"} {-argName "value" -type tclobj} } -nsfCmd "method::setter" NsfSetterCmd { +cmd "method::setter" NsfSetterCmd { {-argName "object" -required 1 -type object} {-argName "-per-object"} {-argName "parameter" -required 1 -type tclobj} } -nsfCmd proc NsfProcCmd { +cmd proc NsfProcCmd { {-argName "-ad" -required 0} {-argName "procName" -required 1 -type tclobj} {-argName "arguments" -required 1 -type tclobj} {-argName "body" -required 1 -type tclobj} } -nsfCmd my NsfMyCmd { +cmd my NsfMyCmd { {-argName "-local"} {-argName "methodName" -required 1 -type tclobj} {-argName "args" -type args} } -nsfCmd next NsfNextCmd { +cmd next NsfNextCmd { {-argName "arguments" -required 0 -type tclobj} } -nsfCmd nscopycmds NsfNSCopyCmdsCmd { +cmd nscopycmds NsfNSCopyCmdsCmd { {-argName "fromNs" -required 1 -type tclobj} {-argName "toNs" -required 1 -type tclobj} } -nsfCmd nscopyvars NsfNSCopyVarsCmd { +cmd nscopyvars NsfNSCopyVarsCmd { {-argName "fromNs" -required 1 -type tclobj} {-argName "toNs" -required 1 -type tclobj} } -nsfCmd qualify NsfQualifyObjCmd { +cmd qualify NsfQualifyObjCmd { {-argName "objectName" -required 1 -type tclobj} } -nsfCmd relation NsfRelationCmd { +cmd relation NsfRelationCmd { {-argName "object" -required 1 -type object} {-argName "relationtype" -required 1 -type "object-mixin|class-mixin|object-filter|class-filter|class|superclass|rootclass"} {-argName "value" -required 0 -type tclobj} } -nsfCmd current NsfCurrentCmd { +cmd current NsfCurrentCmd { {-argName "currentoption" -required 0 -type "proc|method|methodpath|object|class|activelevel|args|activemixin|calledproc|calledmethod|calledclass|callingproc|callingmethod|callingclass|callinglevel|callingobject|filterreg|isnextcall|next"} } -nsfCmd self NsfSelfCmd { +cmd self NsfSelfCmd { } -nsfCmd "var::exists" NsfExistsVarCmd { +cmd "var::exists" NsfExistsVarCmd { {-argName "object" -required 1 -type object} {-argName "varName" -required 1} } -nsfCmd "var::import" NsfImportvarCmd { +cmd "var::import" NsfImportvarCmd { {-argName "object" -required 1 -type object} {-argName "args" -type args} } -nsfCmd "var::set" NsfSetVarCmd { +cmd "var::set" NsfSetVarCmd { {-argName "object" -required 1 -type object} {-argName "varName" -required 1 -type tclobj} {-argName "value" -required 0 -type tclobj} Index: generic/gentclAPI.tcl =================================================================== diff -u -r4536c2540977c43aaf422800dab048e5d9063b3f -rbf592f968ae84740d9ef7c40cddbcbf9f5a68283 --- generic/gentclAPI.tcl (.../gentclAPI.tcl) (revision 4536c2540977c43aaf422800dab048e5d9063b3f) +++ generic/gentclAPI.tcl (.../gentclAPI.tcl) (revision bf592f968ae84740d9ef7c40cddbcbf9f5a68283) @@ -27,7 +27,7 @@ subst { enum ${name}Idx {[join $enums {, }]}; -static int ConvertTo${name}(Tcl_Interp *interp, Tcl_Obj *objPtr, NsfParam CONST *pPtr, +static int ConvertTo${name}(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr) { int index, result; $opts @@ -54,6 +54,7 @@ "NULL" {set converter String} "boolean" {set converter Boolean} "switch" {set converter Boolean} + "int" {set converter Integer} "class" {set converter Class} "object" {set converter Object} "tclobj" {set converter Tclobj} @@ -74,7 +75,8 @@ # } else { # set default "" # } - lappend l "{\"$argName\", $flags, $(-nrargs), ConvertTo$converter, NULL,NULL,NULL,NULL,NULL,NULL,NULL}" + if {$converter in {Tclobj Integer String}} {set conv Nsf_ConvertTo$converter} else {set conv ConvertTo$converter} + lappend l "{\"$argName\", $flags, $(-nrargs), $conv, NULL,NULL,NULL,NULL,NULL,NULL,NULL}" } if {[llength $l] == 0} { return "{NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL}" @@ -128,6 +130,7 @@ "class" {set type "NsfClass *"} "object" {set type "NsfObject *"} "tclobj" {set type "Tcl_Obj *"} + "int" {set type "int "} "*|*" {set type "int "} default {error "type '$(-type)' not allowed for parameter"} } @@ -285,7 +288,7 @@ } elseif {$nrArgs == 0} { append pre [subst -nocommands { if (objc != 1) { - return ArgumentError(interp, "too many arguments:", + return NsfArgumentError(interp, "too many arguments:", method_definitions[$d(idx)].paramDefs, NULL, objv[0]); } @@ -303,7 +306,7 @@ } append pre [subst -nocommands { if ($op) { - return ArgumentError(interp, "wrong # of arguments:", + return NsfArgumentError(interp, "wrong # of arguments:", method_definitions[$d(idx)].paramDefs, NULL, objv[0]); } @@ -330,36 +333,22 @@ append stubDecls $stubDecl } - puts { -typedef struct { - CONST char *methodName; - Tcl_ObjCmdProc *proc; - int nrParameters; - NsfParam paramDefs[12]; -} methodDefinition; - } - puts $::converter - - set entries [list] - foreach c [array names ::createdConverter] {lappend entries "\{$::createdConverter($c)\}"} - puts [subst { + puts $::converter + + set entries [list] + foreach c [array names ::createdConverter] {lappend entries "\{$::createdConverter($c)\}"} + if {[llength $entries]>0} { + puts [subst { static enumeratorConverterEntry enumeratorConverterEntries\[\] = { [join $entries ",\n "], {NULL, NULL} }; - }] + }] + } - puts { -static int ArgumentParse(Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[], - NsfObject *obj, Tcl_Obj *procName, - NsfParam CONST *paramPtr, int nrParameters, int doCheck, - ParseContext *pc); - -static int GetMatchObject(Tcl_Interp *interp, Tcl_Obj *patternObj, Tcl_Obj *origObj, - NsfObject **matchObject, CONST char **pattern); - + puts { /* just to define the symbol */ -static methodDefinition method_definitions[]; +static Nsf_methodDefinition method_definitions[]; } set namespaces [list] @@ -376,7 +365,7 @@ puts "enum {\n $enumString\n} NsfMethods;\n" puts $fns set definitionString [join $ifds ",\n"] - puts "static methodDefinition method_definitions\[\] = \{\n$definitionString,\{NULL\}\n\};\n" + puts "static Nsf_methodDefinition method_definitions\[\] = \{\n$definitionString,\{NULL\}\n\};\n" } proc methodDefinition {methodName methodType implementation parameterDefinitions {ns ""}} { @@ -417,11 +406,13 @@ proc classInfoMethod {methodName implementation parameterDefinitions} { methodDefinition $methodName classMethod $implementation $parameterDefinitions $::ns(classInfoMethod) } -proc nsfCmd {methodName implementation parameterDefinitions} { - methodDefinition $methodName nsfCmd $implementation $parameterDefinitions +proc cmd {methodName implementation parameterDefinitions} { + methodDefinition $methodName cmd $implementation $parameterDefinitions } -source [file dirname [info script]]/gentclAPI.decls +if {[llength $argv] == 1} {set decls $argv} {set decls generic/gentclAPI.decls} +puts stderr "source $decls" +source $decls genstubs puts stderr "[array size ::definitions] parsing stubs generated" Index: generic/nsf.c =================================================================== diff -u -rb9444659be7050e31855b0dfc3789087ee62a274 -rbf592f968ae84740d9ef7c40cddbcbf9f5a68283 --- generic/nsf.c (.../nsf.c) (revision b9444659be7050e31855b0dfc3789087ee62a274) +++ generic/nsf.c (.../nsf.c) (revision bf592f968ae84740d9ef7c40cddbcbf9f5a68283) @@ -94,7 +94,7 @@ typedef struct SetterCmdClientData { NsfObject *object; - NsfParam *paramsPtr; + Nsf_Param *paramsPtr; } SetterCmdClientData; typedef struct ForwardCmdClientData { @@ -133,6 +133,7 @@ #define PARSE_CONTEXT_PREALLOC 20 typedef struct { ClientData *clientData; + int status; Tcl_Obj **objv; Tcl_Obj **full_objv; int *flags; @@ -141,15 +142,14 @@ int flags_static[PARSE_CONTEXT_PREALLOC+1]; int lastobjc; int objc; - int status; int varArgs; NsfObject *object; } ParseContext; -static NsfTypeConverter ConvertToNothing, ConvertViaCmd, ConvertToClass; +static Nsf_TypeConverter ConvertToNothing, ConvertViaCmd, ConvertToClass; typedef struct { - NsfTypeConverter *converter; + Nsf_TypeConverter *converter; char *domain; } enumeratorConverterEntry; static enumeratorConverterEntry enumeratorConverterEntries[]; @@ -249,14 +249,17 @@ static int ProcessMethodArguments(ParseContext *pcPtr, Tcl_Interp *interp, NsfObject *object, int pushFrame, NsfParamDefs *paramDefs, Tcl_Obj *methodNameObj, int objc, Tcl_Obj *CONST objv[]); -static int ArgumentCheck(Tcl_Interp *interp, Tcl_Obj *objPtr, struct NsfParam CONST *pPtr, int doCheck, - int *flags, ClientData *clientData, Tcl_Obj **outObjPtr); static int ParameterCheck(Tcl_Interp *interp, Tcl_Obj *objPtr, Tcl_Obj *valueObj, - const char *varNamePrefix, int doCheck, NsfParam **paramPtrPtr); + const char *varNamePrefix, int doCheck, Nsf_Param **paramPtrPtr); static void ParamDefsFree(NsfParamDefs *paramDefs); static int ParamSetFromAny(Tcl_Interp *interp, register Tcl_Obj *objPtr); +static int ArgumentParse(Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[], + NsfObject *obj, Tcl_Obj *procName, + Nsf_Param CONST *paramPtr, int nrParameters, int doCheck, + ParseContext *pc); +static int ArgumentCheck(Tcl_Interp *interp, Tcl_Obj *objPtr, struct Nsf_Param CONST *pPtr, int doCheck, + int *flags, ClientData *clientData, Tcl_Obj **outObjPtr); - /* prototypes for alias management */ static int AliasDelete(Tcl_Interp *interp, Tcl_Obj *cmdName, CONST char *methodName, int withPer_object); static Tcl_Obj *AliasGet(Tcl_Interp *interp, Tcl_Obj *cmdName, CONST char *methodName, @@ -355,7 +358,7 @@ *---------------------------------------------------------------------- */ -static void +void NsfLog(Tcl_Interp *interp, int requiredLevel, CONST char *fmt, ...) { va_list ap; @@ -7065,16 +7068,16 @@ FREE(NsfProcContext, ctxPtr); } -static NsfParam * +static Nsf_Param * ParamsNew(int nr) { - NsfParam *paramsPtr = NEW_ARRAY(NsfParam, nr+1); - memset(paramsPtr, 0, sizeof(NsfParam)*(nr+1)); + Nsf_Param *paramsPtr = NEW_ARRAY(Nsf_Param, nr+1); + memset(paramsPtr, 0, sizeof(Nsf_Param)*(nr+1)); return paramsPtr; } static void -ParamsFree(NsfParam *paramsPtr) { - NsfParam *paramPtr; +ParamsFree(Nsf_Param *paramsPtr) { + Nsf_Param *paramPtr; /*fprintf(stderr, "ParamsFree %p\n", paramsPtr);*/ for (paramPtr=paramsPtr; paramPtr->name; paramPtr++) { @@ -7087,7 +7090,7 @@ if (paramPtr->paramObj) {DECR_REF_COUNT(paramPtr->paramObj);} if (paramPtr->slotObj) {DECR_REF_COUNT(paramPtr->slotObj);} } - FREE(NsfParam*, paramsPtr); + FREE(Nsf_Param*, paramsPtr); } static NsfParamDefs * @@ -7213,10 +7216,10 @@ *---------------------------------------------------------------------- */ static Tcl_Obj * -ParamDefsFormat(Tcl_Interp *interp, NsfParam CONST *paramsPtr) { +ParamDefsFormat(Tcl_Interp *interp, Nsf_Param CONST *paramsPtr) { int first, colonWritten; Tcl_Obj *listObj = Tcl_NewListObj(0, NULL), *innerListObj, *nameStringObj; - NsfParam CONST *pPtr; + Nsf_Param CONST *pPtr; for (pPtr = paramsPtr; pPtr->name; pPtr++) { if (pPtr -> paramObj) { @@ -7299,9 +7302,9 @@ *---------------------------------------------------------------------- */ static Tcl_Obj * -ParamDefsList(Tcl_Interp *interp, NsfParam CONST *paramsPtr) { +ParamDefsList(Tcl_Interp *interp, Nsf_Param CONST *paramsPtr) { Tcl_Obj *listObj = Tcl_NewListObj(0, NULL); - NsfParam CONST *pPtr; + Nsf_Param CONST *pPtr; for (pPtr = paramsPtr; pPtr->name; pPtr++) { Tcl_ListObjAppendElement(interp, listObj, pPtr->nameObj); @@ -7324,7 +7327,7 @@ *---------------------------------------------------------------------- */ static CONST char * -ParamGetType(NsfParam CONST *paramPtr) { +ParamGetType(Nsf_Param CONST *paramPtr) { CONST char *result = "value"; assert(paramPtr); @@ -7367,7 +7370,7 @@ *---------------------------------------------------------------------- */ static CONST char * -ParamGetDomain(NsfParam CONST *paramPtr) { +ParamGetDomain(Nsf_Param CONST *paramPtr) { CONST char *result = "value"; assert(paramPtr); @@ -7387,7 +7390,7 @@ /* *---------------------------------------------------------------------- - * ParamDefsSyntax -- + * NsfParamDefsSyntax -- * * Return the parameter definitions of a sequence of parameters in * the form of the "parametersyntax", inspired by the Tcl manual @@ -7402,10 +7405,10 @@ *---------------------------------------------------------------------- */ -static Tcl_Obj * -ParamDefsSyntax(NsfParam CONST *paramPtr) { +Tcl_Obj * +NsfParamDefsSyntax(Nsf_Param CONST *paramPtr) { Tcl_Obj *argStringObj = Tcl_NewStringObj("", 0); - NsfParam CONST *pPtr; + Nsf_Param CONST *pPtr; for (pPtr = paramPtr; pPtr->name; pPtr++) { if (pPtr != paramPtr) { @@ -8685,8 +8688,8 @@ * type converter */ /* we could define parameterTypes with a converter, setter, canCheck, name */ -static int -ConvertToString(Tcl_Interp *UNUSED(interp), Tcl_Obj *objPtr, NsfParam CONST *UNUSED(pPtr), +int +Nsf_ConvertToString(Tcl_Interp *UNUSED(interp), Tcl_Obj *objPtr, Nsf_Param CONST *UNUSED(pPtr), ClientData *clientData, Tcl_Obj **outObjPtr) { *clientData = (char *)ObjStr(objPtr); *outObjPtr = objPtr; @@ -8703,8 +8706,8 @@ "upper", "wideinteger", "wordchar", "xdigit", NULL}; -static int -ConvertToTclobj(Tcl_Interp *interp, Tcl_Obj *objPtr, NsfParam CONST *pPtr, +int +Nsf_ConvertToTclobj(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr) { Tcl_Obj *objv[3]; int result; @@ -8752,29 +8755,29 @@ } static int -ConvertToNothing(Tcl_Interp *UNUSED(interp), Tcl_Obj *objPtr, NsfParam CONST *UNUSED(pPtr), +ConvertToNothing(Tcl_Interp *UNUSED(interp), Tcl_Obj *objPtr, Nsf_Param CONST *UNUSED(pPtr), ClientData *UNUSED(clientData), Tcl_Obj **outObjPtr) { *outObjPtr = objPtr; return TCL_OK; } static int -ConvertToBoolean(Tcl_Interp *interp, Tcl_Obj *objPtr, NsfParam CONST *pPtr, +ConvertToBoolean(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr) { int result, bool; result = Tcl_GetBooleanFromObj(interp, objPtr, &bool); if (result == TCL_OK) { *clientData = (ClientData)INT2PTR(bool); } else { - NsfObjErrType(interp, NULL, objPtr, "boolean", (Nsf_Param *)pPtr); + NsfObjErrType(interp, NULL, objPtr, "boolean", pPtr); } *outObjPtr = objPtr; return result; } -static int -ConvertToInteger(Tcl_Interp *interp, Tcl_Obj *objPtr, NsfParam CONST *pPtr, +int +Nsf_ConvertToInteger(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr) { int result, i; @@ -8790,14 +8793,14 @@ } static int -ConvertToSwitch(Tcl_Interp *interp, Tcl_Obj *objPtr, NsfParam CONST *pPtr, +ConvertToSwitch(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr) { return ConvertToBoolean(interp, objPtr, pPtr, clientData, outObjPtr); } static int IsObjectOfType(Tcl_Interp *interp, NsfObject *object, CONST char *what, Tcl_Obj *objPtr, - NsfParam CONST *pPtr) { + Nsf_Param CONST *pPtr) { NsfClass *cl; Tcl_DString ds, *dsPtr = &ds; @@ -8832,7 +8835,7 @@ } static int -ConvertToObject(Tcl_Interp *interp, Tcl_Obj *objPtr, NsfParam CONST *pPtr, +ConvertToObject(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr) { *outObjPtr = objPtr; if (GetObjectFromObj(interp, objPtr, (NsfObject **)clientData) == TCL_OK) { @@ -8842,7 +8845,7 @@ } static int -ConvertToClass(Tcl_Interp *interp, Tcl_Obj *objPtr, NsfParam CONST *pPtr, +ConvertToClass(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr) { *outObjPtr = objPtr; if (GetClassFromObj(interp, objPtr, (NsfClass **)clientData, NULL) == TCL_OK) { @@ -8852,7 +8855,7 @@ } static int -ConvertToParameter(Tcl_Interp *interp, Tcl_Obj *objPtr, NsfParam CONST *pPtr, +ConvertToParameter(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr) { CONST char *value = ObjStr(objPtr); @@ -8868,7 +8871,7 @@ } static int -ConvertViaCmd(Tcl_Interp *interp, Tcl_Obj *objPtr, NsfParam CONST *pPtr, +ConvertViaCmd(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr) { Tcl_Obj *ov[5], *savedResult; NsfObject *object; @@ -8944,7 +8947,7 @@ } static int -ConvertToObjpattern(Tcl_Interp *interp, Tcl_Obj *objPtr, NsfParam CONST *UNUSED(pPtr), +ConvertToObjpattern(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *UNUSED(pPtr), ClientData *clientData, Tcl_Obj **outObjPtr) { Tcl_Obj *patternObj = objPtr; CONST char *pattern = ObjStr(objPtr); @@ -8984,8 +8987,8 @@ } static int -ParamOptionSetConverter(Tcl_Interp *interp, NsfParam *paramPtr, - CONST char *typeName, NsfTypeConverter *converter) { +ParamOptionSetConverter(Tcl_Interp *interp, Nsf_Param *paramPtr, + CONST char *typeName, Nsf_TypeConverter *converter) { if (paramPtr->converter) { return NsfPrintError(interp, "Refuse to redefine parameter converter to use %s", typeName); @@ -8999,7 +9002,7 @@ static int ParamOptionParse(Tcl_Interp *interp, CONST char *argString, size_t start, size_t remainder, - int disallowedOptions, NsfParam *paramPtr) { + int disallowedOptions, Nsf_Param *paramPtr) { CONST char *dotdot, *option = argString + start; char *firstComma = memchr(option, ',', remainder); size_t optionLength; @@ -9085,7 +9088,7 @@ INCR_REF_COUNT(paramPtr->defaultValue); } else if (strncmp(option, "integer", MAX(3,optionLength)) == 0) { - result = ParamOptionSetConverter(interp, paramPtr, "integer", ConvertToInteger); + result = ParamOptionSetConverter(interp, paramPtr, "integer", Nsf_ConvertToInteger); } else if (strncmp(option, "boolean", 7) == 0) { result = ParamOptionSetConverter(interp, paramPtr, "boolean", ConvertToBoolean); @@ -9132,7 +9135,7 @@ } if (found > -1) { /* converter is stringType */ - result = ParamOptionSetConverter(interp, paramPtr, "stringtype", ConvertToTclobj); + result = ParamOptionSetConverter(interp, paramPtr, "stringtype", Nsf_ConvertToTclobj); paramPtr->converterArg = Tcl_NewStringObj(stringTypeOpts[i], -1); INCR_REF_COUNT(paramPtr->converterArg); } else { @@ -9152,7 +9155,7 @@ static int ParamParse(Tcl_Interp *interp, Tcl_Obj *procNameObj, Tcl_Obj *arg, int disallowedFlags, - NsfParam *paramPtr, int *possibleUnknowns, int *plainParams, int *nrNonposArgs) { + Nsf_Param *paramPtr, int *possibleUnknowns, int *plainParams, int *nrNonposArgs) { int result, npac, isNonposArgument; size_t length, j; CONST char *argString, *argName; @@ -9267,7 +9270,7 @@ if (paramPtr->converter == NULL) { /* ConvertToTclobj() is the default converter */ - paramPtr->converter = ConvertToTclobj; + paramPtr->converter = Nsf_ConvertToTclobj; } /*else if (paramPtr->converter == ConvertViaCmd) {*/ if ((paramPtr->slotObj || paramPtr->converter == ConvertViaCmd) && paramPtr->type) { @@ -9355,7 +9358,7 @@ } if (argsc > 0) { - NsfParam *paramsPtr, *paramPtr, *lastParamPtr; + Nsf_Param *paramsPtr, *paramPtr, *lastParamPtr; int i, possibleUnknowns = 0, plainParams = 0, nrNonposArgs = 0; NsfParamDefs *paramDefs; @@ -9434,7 +9437,7 @@ ov[1] = nameObj; if (parsedParam.paramDefs) { - NsfParam *pPtr; + Nsf_Param *pPtr; Tcl_Obj *argList = Tcl_NewListObj(0, NULL); for (pPtr = parsedParam.paramDefs->paramsPtr; pPtr->name; pPtr++) { @@ -9765,7 +9768,7 @@ Tcl_Obj *argList = Tcl_NewListObj(0, NULL); Tcl_Obj *procNameObj; Tcl_DString ds, *dsPtr = &ds; - NsfParam *pPtr; + Nsf_Param *pPtr; Tcl_Obj *ov[4]; int result; Tcl_Command cmd; @@ -12833,21 +12836,10 @@ * argument handling ***********************************/ -static int -ArgumentError(Tcl_Interp *interp, CONST char *errorMsg, NsfParam CONST *paramPtr, - Tcl_Obj *cmdNameObj, Tcl_Obj *methodObj) { - Tcl_Obj *argStringObj = ParamDefsSyntax(paramPtr); - - NsfObjWrongArgs(interp, errorMsg, cmdNameObj, methodObj, ObjStr(argStringObj)); - DECR_REF_COUNT(argStringObj); - - return TCL_ERROR; -} - #include "tclAPI.h" static int -ArgumentCheckHelper(Tcl_Interp *interp, Tcl_Obj *objPtr, struct NsfParam CONST *pPtr, int *flags, +ArgumentCheckHelper(Tcl_Interp *interp, Tcl_Obj *objPtr, struct Nsf_Param CONST *pPtr, int *flags, ClientData *clientData, Tcl_Obj **outObjPtr) { int objc, i, result; Tcl_Obj **ov; @@ -12868,7 +12860,7 @@ const char *valueString = ObjStr(ov[i]); if (pPtr->flags & NSF_ARG_ALLOW_EMPTY && *valueString == '\0') { - result = ConvertToString(interp, ov[i], pPtr, clientData, &elementObjPtr); + result = Nsf_ConvertToString(interp, ov[i], pPtr, clientData, &elementObjPtr); } else { result = (*pPtr->converter)(interp, ov[i], pPtr, clientData, &elementObjPtr); } @@ -12893,7 +12885,7 @@ } static int -ArgumentCheck(Tcl_Interp *interp, Tcl_Obj *objPtr, struct NsfParam CONST *pPtr, int doCheck, +ArgumentCheck(Tcl_Interp *interp, Tcl_Obj *objPtr, struct Nsf_Param CONST *pPtr, int doCheck, int *flags, ClientData *clientData, Tcl_Obj **outObjPtr) { int result; @@ -12934,7 +12926,7 @@ const char *valueString = ObjStr(ov[i]); if (0 && /* TODO: REMOVE ME */ pPtr->flags & NSF_ARG_ALLOW_EMPTY && *valueString == '\0') { - result = ConvertToString(interp, ov[i], pPtr, clientData, &elementObjPtr); + result = Nsf_ConvertToString(interp, ov[i], pPtr, clientData, &elementObjPtr); } else { result = (*pPtr->converter)(interp, ov[i], pPtr, clientData, &elementObjPtr); } @@ -12964,7 +12956,7 @@ CONST char *valueString = ObjStr(objPtr); if (pPtr->flags & NSF_ARG_ALLOW_EMPTY && *valueString == '\0') { - result = ConvertToString(interp, objPtr, pPtr, clientData, outObjPtr); + result = Nsf_ConvertToString(interp, objPtr, pPtr, clientData, outObjPtr); } else { result = (*pPtr->converter)(interp, objPtr, pPtr, clientData, outObjPtr); } @@ -12979,8 +12971,8 @@ static int ArgumentDefaults(ParseContext *pcPtr, Tcl_Interp *interp, - NsfParam CONST *ifd, int nrParams) { - NsfParam CONST *pPtr; + Nsf_Param CONST *ifd, int nrParams) { + Nsf_Param CONST *pPtr; int i; for (pPtr = ifd, i=0; ilastobjc+1]), -1); Tcl_DStringAppend(dsPtr, "', maybe too many arguments;", -1); - return ArgumentError(interp, Tcl_DStringValue(dsPtr), paramPtr, + return NsfArgumentError(interp, Tcl_DStringValue(dsPtr), paramPtr, object ? object->cmdName : NULL, procNameObj); DSTRING_FREE(dsPtr); @@ -13463,13 +13465,13 @@ } static Tcl_Obj * -ListParamDefs(Tcl_Interp *interp, NsfParam CONST *paramsPtr, int style) { +ListParamDefs(Tcl_Interp *interp, Nsf_Param CONST *paramsPtr, int style) { Tcl_Obj *listObj; switch (style) { case 0: listObj = ParamDefsFormat(interp, paramsPtr); break; case 1: listObj = ParamDefsList(interp, paramsPtr); break; - case 2: listObj = ParamDefsSyntax(paramsPtr); break; + case 2: listObj = NsfParamDefsSyntax(paramsPtr); break; default: listObj = NULL; } @@ -13555,7 +13557,7 @@ * If a command is found for the object|class, check whether we * find the parameter definitions for the C-defined method. */ - methodDefinition *mdPtr = &method_definitions[0]; + Nsf_methodDefinition *mdPtr = &method_definitions[0]; for (; mdPtr->methodName; mdPtr ++) { @@ -15430,7 +15432,7 @@ */ static int NsfIsCmd(Tcl_Interp *interp, int withComplain, Tcl_Obj *constraintObj, Tcl_Obj *valueObj) { - NsfParam *paramPtr = NULL; + Nsf_Param *paramPtr = NULL; int result; result = ParameterCheck(interp, constraintObj, valueObj, "value:", 1, ¶mPtr); @@ -16568,7 +16570,7 @@ } typedef struct NsfParamWrapper { - NsfParam *paramPtr; + Nsf_Param *paramPtr; int refCount; int canFree; } NsfParamWrapper; @@ -16782,10 +16784,10 @@ static int ParameterCheck(Tcl_Interp *interp, Tcl_Obj *objPtr, Tcl_Obj *valueObj, - const char *varNamePrefix, int doCheck, NsfParam **paramPtrPtr) { + const char *varNamePrefix, int doCheck, Nsf_Param **paramPtrPtr) { NsfParamWrapper *paramWrapperPtr; Tcl_Obj *outObjPtr = NULL; - NsfParam *paramPtr; + Nsf_Param *paramPtr; ClientData checkedData; int result, flags = 0; @@ -16904,7 +16906,7 @@ NsfOConfigureMethod(Tcl_Interp *interp, NsfObject *object, int objc, Tcl_Obj *CONST objv[]) { int result, i, remainingArgsc; NsfParsedParam parsedParam; - NsfParam *paramPtr; + Nsf_Param *paramPtr; NsfParamDefs *paramDefs; Tcl_Obj *newValue; ParseContext pc; Index: generic/nsf.h =================================================================== diff -u -r65ec5477000f631789c0809b8a832f45e1b634a4 -rbf592f968ae84740d9ef7c40cddbcbf9f5a68283 --- generic/nsf.h (.../nsf.h) (revision 65ec5477000f631789c0809b8a832f45e1b634a4) +++ generic/nsf.h (.../nsf.h) (revision bf592f968ae84740d9ef7c40cddbcbf9f5a68283) @@ -180,6 +180,15 @@ # define CscListRemove(interp, cscPtr) #endif +#if defined(TCL_THREADS) +# define NsfMutex Tcl_Mutex +# define NsfMutexLock(a) Tcl_MutexLock(a) +# define NsfMutexUnlock(a) Tcl_MutexUnlock(a) +#else +# define NsfMutex int +# define NsfMutexLock(a) (*(a))++ +# define NsfMutexUnlock(a) (*(a))-- +#endif /* * A special definition used to allow this header file to be included @@ -195,6 +204,10 @@ * data structures for the internal use strucures NsfObject and * NsfClass (both defined in NsfInt.h). Modification of elements * visible elements must be mirrored in both incarnations. + * + * Warning: These structures are just containing a few public + * fields. These structures must not be used for querying the size or + * allocating the datastructures. */ typedef struct Nsf_Object { @@ -205,9 +218,54 @@ struct Nsf_Object object; } Nsf_Class; +typedef struct Nsf_ParseContext { + ClientData *clientData; + int status; +} Nsf_ParseContext; + +struct Nsf_Param; +typedef int (Nsf_TypeConverter)(Tcl_Interp *interp, + Tcl_Obj *obj, + struct Nsf_Param CONST *pPtr, + ClientData *clientData, + Tcl_Obj **outObjPtr); typedef struct Nsf_Param { + char *name; + int flags; + int nrArgs; + Nsf_TypeConverter *converter; + Tcl_Obj *converterArg; + Tcl_Obj *defaultValue; + CONST char *type; + Tcl_Obj *nameObj; + Tcl_Obj *converterName; + Tcl_Obj *paramObj; + Tcl_Obj *slotObj; } Nsf_Param; +extern int +Nsf_ArgumentParse(Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[], + Nsf_Object *object, Tcl_Obj *procNameObj, + Nsf_Param CONST *paramPtr, int nrParams, int doCheck, + Nsf_ParseContext *pcPtr); +extern int +NsfArgumentError(Tcl_Interp *interp, CONST char *errorMsg, Nsf_Param CONST *paramPtr, + Tcl_Obj *cmdNameObj, Tcl_Obj *methodObj); + +#define NSF_LOG_NOTICE 2 +#define NSF_LOG_WARN 1 + +extern void +NsfLog(Tcl_Interp *interp, int requiredLevel, CONST char *fmt, ...); + +typedef struct Nsf_methodDefinition { + CONST char *methodName; + Tcl_ObjCmdProc *proc; + int nrParameters; + Nsf_Param paramDefs[12]; +} Nsf_methodDefinition; + + /* * Include the public function declarations that are accessible via * the stubs table. Index: generic/nsfError.c =================================================================== diff -u -reea1c3907d9df65b1e1f80a0d19df35a5dc33d50 -rbf592f968ae84740d9ef7c40cddbcbf9f5a68283 --- generic/nsfError.c (.../nsfError.c) (revision eea1c3907d9df65b1e1f80a0d19df35a5dc33d50) +++ generic/nsfError.c (.../nsfError.c) (revision bf592f968ae84740d9ef7c40cddbcbf9f5a68283) @@ -12,8 +12,8 @@ */ #include "nsfInt.h" +Tcl_Obj *NsfParamDefsSyntax(Nsf_Param CONST *paramPtr); - /* *---------------------------------------------------------------------- * @@ -160,14 +160,42 @@ return TCL_ERROR; } + +/* + *---------------------------------------------------------------------- + * + * NsfArgumentError -- + * + * Produce a wrong number of argument error based on a parameter definition + * + * Results: + * TCL_ERROR + * + * Side effects: + * Sets the result message. + * + *---------------------------------------------------------------------- + */ + +int +NsfArgumentError(Tcl_Interp *interp, CONST char *errorMsg, Nsf_Param CONST *paramPtr, + Tcl_Obj *cmdNameObj, Tcl_Obj *methodObj) { + Tcl_Obj *argStringObj = NsfParamDefsSyntax(paramPtr); + + NsfObjWrongArgs(interp, errorMsg, cmdNameObj, methodObj, ObjStr(argStringObj)); + DECR_REF_COUNT(argStringObj); + + return TCL_ERROR; +} + + extern int NsfObjErrType(Tcl_Interp *interp, CONST char *context, Tcl_Obj *value, CONST char *type, - Nsf_Param CONST *pPtr) + Nsf_Param CONST *paramPtr) { - NsfParam *paramPtr = (NsfParam *)pPtr; int named = (paramPtr && (paramPtr->flags & NSF_ARG_UNNAMED) == 0); int returnValue = !named && paramPtr && (paramPtr->flags & NSF_ARG_IS_RETURNVALUE); Index: generic/nsfInt.h =================================================================== diff -u -r65ec5477000f631789c0809b8a832f45e1b634a4 -rbf592f968ae84740d9ef7c40cddbcbf9f5a68283 --- generic/nsfInt.h (.../nsfInt.h) (revision 65ec5477000f631789c0809b8a832f45e1b634a4) +++ generic/nsfInt.h (.../nsfInt.h) (revision bf592f968ae84740d9ef7c40cddbcbf9f5a68283) @@ -235,16 +235,6 @@ # endif #endif -#if defined(TCL_THREADS) -# define NsfMutex Tcl_Mutex -# define NsfMutexLock(a) Tcl_MutexLock(a) -# define NsfMutexUnlock(a) Tcl_MutexUnlock(a) -#else -# define NsfMutex int -# define NsfMutexLock(a) (*(a))++ -# define NsfMutexUnlock(a) (*(a))-- -#endif - #ifndef HAVE_STRNSTR char *strnstr(const char *buffer, const char *needle, size_t buffer_len); #endif @@ -453,29 +443,9 @@ /* * object and class internals */ -struct NsfParam; -typedef int (NsfTypeConverter)(Tcl_Interp *interp, - Tcl_Obj *obj, - struct NsfParam CONST *pPtr, - ClientData *clientData, - Tcl_Obj **outObjPtr); -typedef struct NsfParam { - char *name; - int flags; - int nrArgs; - NsfTypeConverter *converter; - Tcl_Obj *converterArg; - Tcl_Obj *defaultValue; - CONST char *type; - Tcl_Obj *nameObj; - Tcl_Obj *converterName; - Tcl_Obj *paramObj; - Tcl_Obj *slotObj; -} NsfParam; - typedef struct NsfParamDefs { - NsfParam *paramsPtr; + Nsf_Param *paramsPtr; int nrParams; Tcl_Obj *slotObj; Tcl_Obj *returns; @@ -905,9 +875,6 @@ #define FRAME_IS_NSF_METHOD 0x20000 #define FRAME_IS_NSF_CMETHOD 0x40000 -#define NSF_LOG_NOTICE 2 -#define NSF_LOG_WARN 1 - #if !defined(NDEBUG) /*# define NSF_INLINE*/ #endif Index: generic/tclAPI.h =================================================================== diff -u -r3b7a544e17d23c11227445e2949b94b953fc312c -rbf592f968ae84740d9ef7c40cddbcbf9f5a68283 --- generic/tclAPI.h (.../tclAPI.h) (revision 3b7a544e17d23c11227445e2949b94b953fc312c) +++ generic/tclAPI.h (.../tclAPI.h) (revision bf592f968ae84740d9ef7c40cddbcbf9f5a68283) @@ -1,15 +1,7 @@ -typedef struct { - CONST char *methodName; - Tcl_ObjCmdProc *proc; - int nrParameters; - NsfParam paramDefs[12]; -} methodDefinition; - - enum InfomethodsubcmdIdx {InfomethodsubcmdNULL, InfomethodsubcmdArgsIdx, InfomethodsubcmdBodyIdx, InfomethodsubcmdDefinitionIdx, InfomethodsubcmdExistsIdx, InfomethodsubcmdHandleIdx, InfomethodsubcmdParameterIdx, InfomethodsubcmdParametersyntaxIdx, InfomethodsubcmdTypeIdx, InfomethodsubcmdPreconditionIdx, InfomethodsubcmdPostconditionIdx, InfomethodsubcmdSubmethodsIdx}; -static int ConvertToInfomethodsubcmd(Tcl_Interp *interp, Tcl_Obj *objPtr, NsfParam CONST *pPtr, +static int ConvertToInfomethodsubcmd(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr) { int index, result; static CONST char *opts[] = {"args", "body", "definition", "exists", "handle", "parameter", "parametersyntax", "type", "precondition", "postcondition", "submethods", NULL}; @@ -22,7 +14,7 @@ enum CallprotectionIdx {CallprotectionNULL, CallprotectionAllIdx, CallprotectionProtectedIdx, CallprotectionPublicIdx}; -static int ConvertToCallprotection(Tcl_Interp *interp, Tcl_Obj *objPtr, NsfParam CONST *pPtr, +static int ConvertToCallprotection(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr) { int index, result; static CONST char *opts[] = {"all", "protected", "public", NULL}; @@ -35,7 +27,7 @@ enum MethodtypeIdx {MethodtypeNULL, MethodtypeAllIdx, MethodtypeScriptedIdx, MethodtypeBuiltinIdx, MethodtypeAliasIdx, MethodtypeForwarderIdx, MethodtypeObjectIdx, MethodtypeSetterIdx, MethodtypeNsfprocIdx}; -static int ConvertToMethodtype(Tcl_Interp *interp, Tcl_Obj *objPtr, NsfParam CONST *pPtr, +static int ConvertToMethodtype(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr) { int index, result; static CONST char *opts[] = {"all", "scripted", "builtin", "alias", "forwarder", "object", "setter", "nsfproc", NULL}; @@ -48,7 +40,7 @@ enum ScopeIdx {ScopeNULL, ScopeAllIdx, ScopeClassIdx, ScopeObjectIdx}; -static int ConvertToScope(Tcl_Interp *interp, Tcl_Obj *objPtr, NsfParam CONST *pPtr, +static int ConvertToScope(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr) { int index, result; static CONST char *opts[] = {"all", "class", "object", NULL}; @@ -61,7 +53,7 @@ enum FrameIdx {FrameNULL, FrameMethodIdx, FrameObjectIdx, FrameDefaultIdx}; -static int ConvertToFrame(Tcl_Interp *interp, Tcl_Obj *objPtr, NsfParam CONST *pPtr, +static int ConvertToFrame(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr) { int index, result; static CONST char *opts[] = {"method", "object", "default", NULL}; @@ -74,7 +66,7 @@ enum AssertionsubcmdIdx {AssertionsubcmdNULL, AssertionsubcmdCheckIdx, AssertionsubcmdObject_invarIdx, AssertionsubcmdClass_invarIdx}; -static int ConvertToAssertionsubcmd(Tcl_Interp *interp, Tcl_Obj *objPtr, NsfParam CONST *pPtr, +static int ConvertToAssertionsubcmd(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr) { int index, result; static CONST char *opts[] = {"check", "object-invar", "class-invar", NULL}; @@ -87,7 +79,7 @@ enum ConfigureoptionIdx {ConfigureoptionNULL, ConfigureoptionDebugIdx, ConfigureoptionDtraceIdx, ConfigureoptionFilterIdx, ConfigureoptionProfileIdx, ConfigureoptionSoftrecreateIdx, ConfigureoptionObjectsystemsIdx, ConfigureoptionKeepinitcmdIdx, ConfigureoptionCheckresultsIdx, ConfigureoptionCheckargumentsIdx}; -static int ConvertToConfigureoption(Tcl_Interp *interp, Tcl_Obj *objPtr, NsfParam CONST *pPtr, +static int ConvertToConfigureoption(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr) { int index, result; static CONST char *opts[] = {"debug", "dtrace", "filter", "profile", "softrecreate", "objectsystems", "keepinitcmd", "checkresults", "checkarguments", NULL}; @@ -100,7 +92,7 @@ enum CurrentoptionIdx {CurrentoptionNULL, CurrentoptionProcIdx, CurrentoptionMethodIdx, CurrentoptionMethodpathIdx, CurrentoptionObjectIdx, CurrentoptionClassIdx, CurrentoptionActivelevelIdx, CurrentoptionArgsIdx, CurrentoptionActivemixinIdx, CurrentoptionCalledprocIdx, CurrentoptionCalledmethodIdx, CurrentoptionCalledclassIdx, CurrentoptionCallingprocIdx, CurrentoptionCallingmethodIdx, CurrentoptionCallingclassIdx, CurrentoptionCallinglevelIdx, CurrentoptionCallingobjectIdx, CurrentoptionFilterregIdx, CurrentoptionIsnextcallIdx, CurrentoptionNextIdx}; -static int ConvertToCurrentoption(Tcl_Interp *interp, Tcl_Obj *objPtr, NsfParam CONST *pPtr, +static int ConvertToCurrentoption(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr) { int index, result; static CONST char *opts[] = {"proc", "method", "methodpath", "object", "class", "activelevel", "args", "activemixin", "calledproc", "calledmethod", "calledclass", "callingproc", "callingmethod", "callingclass", "callinglevel", "callingobject", "filterreg", "isnextcall", "next", NULL}; @@ -113,7 +105,7 @@ enum MethodpropertyIdx {MethodpropertyNULL, MethodpropertyClass_onlyIdx, MethodpropertyCall_protectedIdx, MethodpropertyRedefine_protectedIdx, MethodpropertyReturnsIdx, MethodpropertySlotcontainerIdx, MethodpropertySlotobjIdx}; -static int ConvertToMethodproperty(Tcl_Interp *interp, Tcl_Obj *objPtr, NsfParam CONST *pPtr, +static int ConvertToMethodproperty(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr) { int index, result; static CONST char *opts[] = {"class-only", "call-protected", "redefine-protected", "returns", "slotcontainer", "slotobj", NULL}; @@ -126,7 +118,7 @@ enum RelationtypeIdx {RelationtypeNULL, RelationtypeObject_mixinIdx, RelationtypeClass_mixinIdx, RelationtypeObject_filterIdx, RelationtypeClass_filterIdx, RelationtypeClassIdx, RelationtypeSuperclassIdx, RelationtypeRootclassIdx}; -static int ConvertToRelationtype(Tcl_Interp *interp, Tcl_Obj *objPtr, NsfParam CONST *pPtr, +static int ConvertToRelationtype(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr) { int index, result; static CONST char *opts[] = {"object-mixin", "class-mixin", "object-filter", "class-filter", "class", "superclass", "rootclass", NULL}; @@ -139,7 +131,7 @@ enum ObjectkindIdx {ObjectkindNULL, ObjectkindClassIdx, ObjectkindBaseclassIdx, ObjectkindMetaclassIdx}; -static int ConvertToObjectkind(Tcl_Interp *interp, Tcl_Obj *objPtr, NsfParam CONST *pPtr, +static int ConvertToObjectkind(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr) { int index, result; static CONST char *opts[] = {"class", "baseclass", "metaclass", NULL}; @@ -152,7 +144,7 @@ enum SourceIdx {SourceNULL, SourceAllIdx, SourceApplicationIdx, SourceBaseclassesIdx}; -static int ConvertToSource(Tcl_Interp *interp, Tcl_Obj *objPtr, NsfParam CONST *pPtr, +static int ConvertToSource(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr) { int index, result; static CONST char *opts[] = {"all", "application", "baseclasses", NULL}; @@ -179,23 +171,14 @@ {ConvertToAssertionsubcmd, "check|object-invar|class-invar"}, {NULL, NULL} }; - + -static int ArgumentParse(Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[], - NsfObject *obj, Tcl_Obj *procName, - NsfParam CONST *paramPtr, int nrParameters, int doCheck, - ParseContext *pc); - -static int GetMatchObject(Tcl_Interp *interp, Tcl_Obj *patternObj, Tcl_Obj *origObj, - NsfObject **matchObject, CONST char **pattern); - /* just to define the symbol */ -static methodDefinition method_definitions[]; +static Nsf_methodDefinition method_definitions[]; static CONST char *method_command_namespace_names[] = { "::nsf::methods::object::info", "::nsf::methods::object", - "::nsf::cmd::ParameterType", "::nsf::methods::class::info", "::nsf::methods::class" }; @@ -470,7 +453,7 @@ if (objc != 2) { - return ArgumentError(interp, "wrong # of arguments:", + return NsfArgumentError(interp, "wrong # of arguments:", method_definitions[NsfCAllocMethodIdx].paramDefs, NULL, objv[0]); } @@ -505,7 +488,7 @@ if (objc != 2) { - return ArgumentError(interp, "wrong # of arguments:", + return NsfArgumentError(interp, "wrong # of arguments:", method_definitions[NsfCDeallocMethodIdx].paramDefs, NULL, objv[0]); } @@ -599,7 +582,7 @@ if (objc < 1 || objc > 2) { - return ArgumentError(interp, "wrong # of arguments:", + return NsfArgumentError(interp, "wrong # of arguments:", method_definitions[NsfCSuperclassMethodIdx].paramDefs, NULL, objv[0]); } @@ -1028,7 +1011,7 @@ if (objc != 1) { - return ArgumentError(interp, "too many arguments:", + return NsfArgumentError(interp, "too many arguments:", method_definitions[NsfDebugRunAssertionsCmdIdx].paramDefs, NULL, objv[0]); } @@ -1085,7 +1068,7 @@ if (objc != 1) { - return ArgumentError(interp, "too many arguments:", + return NsfArgumentError(interp, "too many arguments:", method_definitions[NsfFinalizeObjCmdIdx].paramDefs, NULL, objv[0]); } @@ -1207,7 +1190,7 @@ if (objc != 2) { - return ArgumentError(interp, "wrong # of arguments:", + return NsfArgumentError(interp, "wrong # of arguments:", method_definitions[NsfIsObjectCmdIdx].paramDefs, NULL, objv[0]); } @@ -1332,7 +1315,7 @@ if (objc < 1 || objc > 2) { - return ArgumentError(interp, "wrong # of arguments:", + return NsfArgumentError(interp, "wrong # of arguments:", method_definitions[NsfNextCmdIdx].paramDefs, NULL, objv[0]); } @@ -1370,7 +1353,7 @@ if (objc != 1) { - return ArgumentError(interp, "too many arguments:", + return NsfArgumentError(interp, "too many arguments:", method_definitions[NsfProfileClearDataStubIdx].paramDefs, NULL, objv[0]); } @@ -1386,7 +1369,7 @@ if (objc != 1) { - return ArgumentError(interp, "too many arguments:", + return NsfArgumentError(interp, "too many arguments:", method_definitions[NsfProfileGetDataStubIdx].paramDefs, NULL, objv[0]); } @@ -1402,7 +1385,7 @@ if (objc != 2) { - return ArgumentError(interp, "wrong # of arguments:", + return NsfArgumentError(interp, "wrong # of arguments:", method_definitions[NsfQualifyObjCmdIdx].paramDefs, NULL, objv[0]); } @@ -1439,7 +1422,7 @@ if (objc != 1) { - return ArgumentError(interp, "too many arguments:", + return NsfArgumentError(interp, "too many arguments:", method_definitions[NsfSelfCmdIdx].paramDefs, NULL, objv[0]); } @@ -1497,7 +1480,7 @@ if (objc != 1) { - return ArgumentError(interp, "too many arguments:", + return NsfArgumentError(interp, "too many arguments:", method_definitions[NsfShowStackCmdIdx].paramDefs, NULL, objv[0]); } @@ -1534,7 +1517,7 @@ if (objc < 1 || objc > 2) { - return ArgumentError(interp, "wrong # of arguments:", + return NsfArgumentError(interp, "wrong # of arguments:", method_definitions[NsfOClassMethodIdx].paramDefs, NULL, objv[0]); } @@ -1550,7 +1533,7 @@ if (objc != 1) { - return ArgumentError(interp, "too many arguments:", + return NsfArgumentError(interp, "too many arguments:", method_definitions[NsfOCleanupMethodIdx].paramDefs, NULL, objv[0]); } @@ -1576,7 +1559,7 @@ if (objc != 1) { - return ArgumentError(interp, "too many arguments:", + return NsfArgumentError(interp, "too many arguments:", method_definitions[NsfODestroyMethodIdx].paramDefs, NULL, objv[0]); } @@ -1661,7 +1644,7 @@ if (objc != 1) { - return ArgumentError(interp, "too many arguments:", + return NsfArgumentError(interp, "too many arguments:", method_definitions[NsfONoinitMethodIdx].paramDefs, NULL, objv[0]); } @@ -1677,7 +1660,7 @@ if (objc != 1) { - return ArgumentError(interp, "too many arguments:", + return NsfArgumentError(interp, "too many arguments:", method_definitions[NsfORequireNamespaceMethodIdx].paramDefs, NULL, objv[0]); } @@ -1723,7 +1706,7 @@ if (objc != 1) { - return ArgumentError(interp, "too many arguments:", + return NsfArgumentError(interp, "too many arguments:", method_definitions[NsfOVolatileMethodIdx].paramDefs, NULL, objv[0]); } @@ -1759,7 +1742,7 @@ if (objc != 1) { - return ArgumentError(interp, "too many arguments:", + return NsfArgumentError(interp, "too many arguments:", method_definitions[NsfObjInfoClassMethodIdx].paramDefs, NULL, objv[0]); } @@ -1873,7 +1856,7 @@ if (objc != 1) { - return ArgumentError(interp, "too many arguments:", + return NsfArgumentError(interp, "too many arguments:", method_definitions[NsfObjInfoHasnamespaceMethodIdx].paramDefs, NULL, objv[0]); } @@ -1927,7 +1910,7 @@ if (objc != 2) { - return ArgumentError(interp, "wrong # of arguments:", + return NsfArgumentError(interp, "wrong # of arguments:", method_definitions[NsfObjInfoLookupMethodMethodIdx].paramDefs, NULL, objv[0]); } @@ -2085,7 +2068,7 @@ if (objc != 1) { - return ArgumentError(interp, "too many arguments:", + return NsfArgumentError(interp, "too many arguments:", method_definitions[NsfObjInfoParentMethodIdx].paramDefs, NULL, objv[0]); } @@ -2133,110 +2116,110 @@ } } -static methodDefinition method_definitions[] = { +static Nsf_methodDefinition method_definitions[] = { {"::nsf::methods::class::alloc", NsfCAllocMethodStub, 1, { - {"objectName", NSF_ARG_REQUIRED, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"objectName", NSF_ARG_REQUIRED, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::create", NsfCCreateMethodStub, 2, { - {"objectName", NSF_ARG_REQUIRED, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"objectName", NSF_ARG_REQUIRED, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, {"args", 0, 0, ConvertToNothing, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::dealloc", NsfCDeallocMethodStub, 1, { - {"object", NSF_ARG_REQUIRED, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"object", NSF_ARG_REQUIRED, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::filterguard", NsfCFilterGuardMethodStub, 2, { - {"filter", NSF_ARG_REQUIRED, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"guard", NSF_ARG_REQUIRED, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"filter", NSF_ARG_REQUIRED, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"guard", NSF_ARG_REQUIRED, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::mixinguard", NsfCMixinGuardMethodStub, 2, { - {"mixin", NSF_ARG_REQUIRED, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"guard", NSF_ARG_REQUIRED, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"mixin", NSF_ARG_REQUIRED, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"guard", NSF_ARG_REQUIRED, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::new", NsfCNewMethodStub, 2, { {"-childof", 0, 1, ConvertToObject, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, {"args", 0, 0, ConvertToNothing, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::recreate", NsfCRecreateMethodStub, 2, { - {"objectName", NSF_ARG_REQUIRED, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"objectName", NSF_ARG_REQUIRED, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, {"args", 0, 0, ConvertToNothing, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::superclass", NsfCSuperclassMethodStub, 1, { - {"superclasses", 0, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"superclasses", 0, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::info::filterguard", NsfClassInfoFilterguardMethodStub, 1, { - {"filter", NSF_ARG_REQUIRED, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"filter", NSF_ARG_REQUIRED, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::info::filtermethods", NsfClassInfoFiltermethodsMethodStub, 2, { - {"-guards", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"pattern", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"-guards", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"pattern", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::info::forward", NsfClassInfoForwardMethodStub, 2, { - {"-definition", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"name", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"-definition", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"name", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::info::heritage", NsfClassInfoHeritageMethodStub, 1, { - {"pattern", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"pattern", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::info::instances", NsfClassInfoInstancesMethodStub, 2, { - {"-closure", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-closure", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, {"pattern", 0, 0, ConvertToObjpattern, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::info::method", NsfClassInfoMethodMethodStub, 2, { {"infomethodsubcmd", 0|NSF_ARG_IS_ENUMERATION, 0, ConvertToInfomethodsubcmd, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"name", NSF_ARG_REQUIRED, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"name", NSF_ARG_REQUIRED, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::info::methods", NsfClassInfoMethodsMethodStub, 6, { {"-callprotection", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToCallprotection, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"-incontext", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-incontext", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, {"-methodtype", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToMethodtype, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"-nomixins", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"-path", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"pattern", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"-nomixins", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-path", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"pattern", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::info::mixinof", NsfClassInfoMixinOfMethodStub, 3, { - {"-closure", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-closure", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, {"-scope", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToScope, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, {"pattern", 0, 0, ConvertToObjpattern, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::info::mixinclasses", NsfClassInfoMixinclassesMethodStub, 3, { - {"-closure", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"-guards", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-closure", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-guards", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, {"pattern", 0, 0, ConvertToObjpattern, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::info::mixinguard", NsfClassInfoMixinguardMethodStub, 1, { - {"mixin", NSF_ARG_REQUIRED, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"mixin", NSF_ARG_REQUIRED, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::info::subclass", NsfClassInfoSubclassMethodStub, 2, { - {"-closure", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-closure", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, {"pattern", 0, 0, ConvertToObjpattern, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::class::info::superclass", NsfClassInfoSuperclassMethodStub, 2, { - {"-closure", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"pattern", 0, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"-closure", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"pattern", 0, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::method::alias", NsfAliasCmdStub, 5, { {"object", NSF_ARG_REQUIRED, 0, ConvertToObject, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"-per-object", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"methodName", NSF_ARG_REQUIRED, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-per-object", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"methodName", NSF_ARG_REQUIRED, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, {"-frame", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToFrame, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"cmdName", NSF_ARG_REQUIRED, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"cmdName", NSF_ARG_REQUIRED, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::method::assertion", NsfAssertionCmdStub, 3, { {"object", NSF_ARG_REQUIRED, 0, ConvertToObject, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, {"assertionsubcmd", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 1, ConvertToAssertionsubcmd, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"arg", 0, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"arg", 0, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::colon", NsfColonCmdStub, 1, { {"args", 0, 0, ConvertToNothing, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::configure", NsfConfigureCmdStub, 2, { {"configureoption", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 0, ConvertToConfigureoption, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"value", 0, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"value", 0, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::createobjectsystem", NsfCreateObjectSystemCmdStub, 3, { - {"rootClass", NSF_ARG_REQUIRED, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"rootMetaClass", NSF_ARG_REQUIRED, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"systemMethods", 0, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"rootClass", NSF_ARG_REQUIRED, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"rootMetaClass", NSF_ARG_REQUIRED, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"systemMethods", 0, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::current", NsfCurrentCmdStub, 1, { {"currentoption", 0|NSF_ARG_IS_ENUMERATION, 0, ConvertToCurrentoption, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} @@ -2247,86 +2230,86 @@ {"::nsf::dispatch", NsfDispatchCmdStub, 4, { {"object", NSF_ARG_REQUIRED, 0, ConvertToObject, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, {"-frame", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToFrame, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"command", NSF_ARG_REQUIRED, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"command", NSF_ARG_REQUIRED, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, {"args", 0, 0, ConvertToNothing, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::var::exists", NsfExistsVarCmdStub, 2, { {"object", NSF_ARG_REQUIRED, 0, ConvertToObject, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"varName", NSF_ARG_REQUIRED, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"varName", NSF_ARG_REQUIRED, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::finalize", NsfFinalizeObjCmdStub, 0, { {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::method::forward", NsfForwardCmdStub, 11, { {"object", NSF_ARG_REQUIRED, 0, ConvertToObject, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"-per-object", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"method", NSF_ARG_REQUIRED, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"-default", 0, 1, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"-earlybinding", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"-methodprefix", 0, 1, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"-objframe", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"-onerror", 0, 1, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"-verbose", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"target", 0, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-per-object", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"method", NSF_ARG_REQUIRED, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-default", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-earlybinding", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-methodprefix", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-objframe", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-onerror", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-verbose", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"target", 0, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, {"args", 0, 0, ConvertToNothing, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::var::import", NsfImportvarCmdStub, 2, { {"object", NSF_ARG_REQUIRED, 0, ConvertToObject, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, {"args", 0, 0, ConvertToNothing, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::interp", NsfInterpObjCmdStub, 2, { - {"name", NSF_ARG_REQUIRED, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"name", NSF_ARG_REQUIRED, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, {"args", 0, 0, ConvertToNothing, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::invalidateobjectparameter", NsfInvalidateObjectParameterCmdStub, 1, { {"class", NSF_ARG_REQUIRED, 0, ConvertToClass, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::is", NsfIsCmdStub, 3, { - {"-complain", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"constraint", NSF_ARG_REQUIRED, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"value", NSF_ARG_REQUIRED, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"-complain", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"constraint", NSF_ARG_REQUIRED, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"value", NSF_ARG_REQUIRED, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::isobject", NsfIsObjectCmdStub, 1, { - {"value", NSF_ARG_REQUIRED, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"value", NSF_ARG_REQUIRED, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::method::create", NsfMethodCmdStub, 8, { {"object", NSF_ARG_REQUIRED, 0, ConvertToObject, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"-inner-namespace", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"-per-object", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"methodName", NSF_ARG_REQUIRED, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"arguments", NSF_ARG_REQUIRED, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"body", NSF_ARG_REQUIRED, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"-precondition", 0, 1, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"-postcondition", 0, 1, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"-inner-namespace", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-per-object", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"methodName", NSF_ARG_REQUIRED, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"arguments", NSF_ARG_REQUIRED, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"body", NSF_ARG_REQUIRED, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-precondition", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-postcondition", 0, 1, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::method::property", NsfMethodPropertyCmdStub, 5, { {"object", NSF_ARG_REQUIRED, 0, ConvertToObject, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"-per-object", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"methodName", NSF_ARG_REQUIRED, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-per-object", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"methodName", NSF_ARG_REQUIRED, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, {"methodproperty", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 0, ConvertToMethodproperty, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"value", 0, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"value", 0, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::my", NsfMyCmdStub, 3, { - {"-local", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"methodName", NSF_ARG_REQUIRED, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-local", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"methodName", NSF_ARG_REQUIRED, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, {"args", 0, 0, ConvertToNothing, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::nscopycmds", NsfNSCopyCmdsCmdStub, 2, { - {"fromNs", NSF_ARG_REQUIRED, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"toNs", NSF_ARG_REQUIRED, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"fromNs", NSF_ARG_REQUIRED, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"toNs", NSF_ARG_REQUIRED, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::nscopyvars", NsfNSCopyVarsCmdStub, 2, { - {"fromNs", NSF_ARG_REQUIRED, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"toNs", NSF_ARG_REQUIRED, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"fromNs", NSF_ARG_REQUIRED, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"toNs", NSF_ARG_REQUIRED, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::next", NsfNextCmdStub, 1, { - {"arguments", 0, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"arguments", 0, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::proc", NsfProcCmdStub, 4, { - {"-ad", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"procName", NSF_ARG_REQUIRED, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"arguments", NSF_ARG_REQUIRED, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"body", NSF_ARG_REQUIRED, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"-ad", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"procName", NSF_ARG_REQUIRED, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"arguments", NSF_ARG_REQUIRED, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"body", NSF_ARG_REQUIRED, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::__profile_clear", NsfProfileClearDataStubStub, 0, { {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} @@ -2335,36 +2318,36 @@ {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::qualify", NsfQualifyObjCmdStub, 1, { - {"objectName", NSF_ARG_REQUIRED, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"objectName", NSF_ARG_REQUIRED, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::relation", NsfRelationCmdStub, 3, { {"object", NSF_ARG_REQUIRED, 0, ConvertToObject, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, {"relationtype", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 0, ConvertToRelationtype, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"value", 0, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"value", 0, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::self", NsfSelfCmdStub, 0, { {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::var::set", NsfSetVarCmdStub, 3, { {"object", NSF_ARG_REQUIRED, 0, ConvertToObject, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"varName", NSF_ARG_REQUIRED, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"value", 0, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"varName", NSF_ARG_REQUIRED, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"value", 0, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::method::setter", NsfSetterCmdStub, 3, { {"object", NSF_ARG_REQUIRED, 0, ConvertToObject, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"-per-object", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"parameter", NSF_ARG_REQUIRED, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"-per-object", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"parameter", NSF_ARG_REQUIRED, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::__db_show_stack", NsfShowStackCmdStub, 0, { {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::autoname", NsfOAutonameMethodStub, 3, { - {"-instance", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"-reset", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"name", NSF_ARG_REQUIRED, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"-instance", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-reset", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"name", NSF_ARG_REQUIRED, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::class", NsfOClassMethodStub, 1, { - {"class", 0, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"class", 0, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::cleanup", NsfOCleanupMethodStub, 0, { {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} @@ -2376,18 +2359,18 @@ {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::exists", NsfOExistsMethodStub, 1, { - {"varName", NSF_ARG_REQUIRED, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"varName", NSF_ARG_REQUIRED, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::filterguard", NsfOFilterGuardMethodStub, 2, { - {"filter", NSF_ARG_REQUIRED, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"guard", NSF_ARG_REQUIRED, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"filter", NSF_ARG_REQUIRED, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"guard", NSF_ARG_REQUIRED, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::instvar", NsfOInstvarMethodStub, 1, { {"args", 0, 0, ConvertToNothing, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::mixinguard", NsfOMixinGuardMethodStub, 2, { - {"mixin", NSF_ARG_REQUIRED, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"guard", NSF_ARG_REQUIRED, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"mixin", NSF_ARG_REQUIRED, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"guard", NSF_ARG_REQUIRED, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::noinit", NsfONoinitMethodStub, 0, { {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} @@ -2409,22 +2392,22 @@ }, {"::nsf::methods::object::info::children", NsfObjInfoChildrenMethodStub, 2, { {"-type", 0, 1, ConvertToClass, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"pattern", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"pattern", 0, 0, Nsf_ConvertToString, 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}} }, {"::nsf::methods::object::info::filterguard", NsfObjInfoFilterguardMethodStub, 1, { - {"fileName", NSF_ARG_REQUIRED, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"fileName", NSF_ARG_REQUIRED, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::info::filtermethods", NsfObjInfoFiltermethodsMethodStub, 3, { - {"-guards", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"-order", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"pattern", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"-guards", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-order", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"pattern", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::info::forward", NsfObjInfoForwardMethodStub, 2, { - {"-definition", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"name", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"-definition", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"name", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::info::hasmixin", NsfObjInfoHasMixinMethodStub, 1, { {"class", NSF_ARG_REQUIRED, 0, ConvertToClass, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} @@ -2439,52 +2422,52 @@ {"objectkind", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 0, ConvertToObjectkind, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::info::lookupfilter", NsfObjInfoLookupFilterMethodStub, 1, { - {"filter", NSF_ARG_REQUIRED, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"filter", NSF_ARG_REQUIRED, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::info::lookupmethod", NsfObjInfoLookupMethodMethodStub, 1, { - {"name", NSF_ARG_REQUIRED, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"name", NSF_ARG_REQUIRED, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::info::lookupmethods", NsfObjInfoLookupMethodsMethodStub, 7, { {"-callprotection", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToCallprotection, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"-incontext", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-incontext", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, {"-methodtype", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToMethodtype, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"-nomixins", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"-path", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-nomixins", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-path", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, {"-source", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToSource, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"pattern", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"pattern", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::info::lookupslots", NsfObjInfoLookupSlotsMethodStub, 1, { {"-type", 0, 1, ConvertToClass, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::info::method", NsfObjInfoMethodMethodStub, 2, { {"infomethodsubcmd", 0|NSF_ARG_IS_ENUMERATION, 0, ConvertToInfomethodsubcmd, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"name", NSF_ARG_REQUIRED, 0, ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"name", NSF_ARG_REQUIRED, 0, Nsf_ConvertToTclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::info::methods", NsfObjInfoMethodsMethodStub, 6, { {"-callprotection", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToCallprotection, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"-incontext", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-incontext", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, {"-methodtype", 0|NSF_ARG_IS_ENUMERATION, 1, ConvertToMethodtype, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"-nomixins", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"-path", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"pattern", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"-nomixins", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-path", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"pattern", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::info::mixinclasses", NsfObjInfoMixinclassesMethodStub, 3, { - {"-guards", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"-order", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-guards", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"-order", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, {"pattern", 0, 0, ConvertToObjpattern, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::info::mixinguard", NsfObjInfoMixinguardMethodStub, 1, { - {"mixin", NSF_ARG_REQUIRED, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"mixin", NSF_ARG_REQUIRED, 0, Nsf_ConvertToString, 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}} }, {"::nsf::methods::object::info::precedence", NsfObjInfoPrecedenceMethodStub, 2, { - {"-intrinsic", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, - {"pattern", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"-intrinsic", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"pattern", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, {"::nsf::methods::object::info::vars", NsfObjInfoVarsMethodStub, 1, { - {"pattern", 0, 0, ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} + {"pattern", 0, 0, Nsf_ConvertToString, NULL,NULL,NULL,NULL,NULL,NULL,NULL}} },{NULL} };