diff options
author | dkf <donal.k.fellows@manchester.ac.uk> | 2007-11-21 14:30:22 (GMT) |
---|---|---|
committer | dkf <donal.k.fellows@manchester.ac.uk> | 2007-11-21 14:30:22 (GMT) |
commit | 6e360c3d1ad0bbf16377cf5d2d9f8eac1f8092a8 (patch) | |
tree | 833b08f4554fe3791997147f2fbf9f826b62860b /generic/tclInt.h | |
parent | 98ce25af617901be6af682a617c9b35abee2c548 (diff) | |
download | tcl-6e360c3d1ad0bbf16377cf5d2d9f8eac1f8092a8.zip tcl-6e360c3d1ad0bbf16377cf5d2d9f8eac1f8092a8.tar.gz tcl-6e360c3d1ad0bbf16377cf5d2d9f8eac1f8092a8.tar.bz2 |
Factor out the core compiled-ensemble builder for simplicity.
Diffstat (limited to 'generic/tclInt.h')
-rw-r--r-- | generic/tclInt.h | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/generic/tclInt.h b/generic/tclInt.h index 479232b..f726571 100644 --- a/generic/tclInt.h +++ b/generic/tclInt.h @@ -13,7 +13,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclInt.h,v 1.349 2007/11/20 20:43:12 dkf Exp $ + * RCS: @(#) $Id: tclInt.h,v 1.350 2007/11/21 14:30:34 dkf Exp $ */ #ifndef _TCLINT @@ -1291,7 +1291,6 @@ typedef struct ExecStack { Tcl_Obj *stackWords[1]; } ExecStack; - /* * The data structure defining the execution environment for ByteCode's. * There is one ExecEnv structure per Tcl interpreter. It holds the evaluation @@ -1394,6 +1393,17 @@ typedef struct ByteCodeStats { #endif /* TCL_COMPILE_STATS */ /* + * Structure used in implementation of those core ensembles which are + * partially compiled. + */ + +typedef struct { + const char *name; /* The name of the subcommand. */ + Tcl_ObjCmdProc *proc; /* The implementation of the subcommand. */ + CompileProc *compileProc; /* The compiler for the subcommand. */ +} EnsembleImplMap; + +/* *---------------------------------------------------------------- * Data structures related to commands. *---------------------------------------------------------------- @@ -1880,7 +1890,7 @@ typedef struct Interp { } Interp; /* - * Macros that use the TSD-ekeko + * Macros that use the TSD-ekeko. */ #define TclAsyncReady(iPtr) \ @@ -2521,6 +2531,8 @@ MODULE_SCOPE Tcl_Obj * TclLsetList(Tcl_Interp *interp, Tcl_Obj *listPtr, MODULE_SCOPE Tcl_Obj * TclLsetFlat(Tcl_Interp *interp, Tcl_Obj *listPtr, int indexCount, Tcl_Obj *const indexArray[], Tcl_Obj *valuePtr); +MODULE_SCOPE Tcl_Command TclMakeEnsemble(Tcl_Interp *interp, const char *name, + const EnsembleImplMap map[]); MODULE_SCOPE int TclMarkList(Tcl_Interp *interp, const char *list, const char *end, int *argcPtr, const int **argszPtr, const char ***argvPtr); |