summaryrefslogtreecommitdiffstats
path: root/generic/tclInt.h
diff options
context:
space:
mode:
authordkf <donal.k.fellows@manchester.ac.uk>2007-11-21 14:30:22 (GMT)
committerdkf <donal.k.fellows@manchester.ac.uk>2007-11-21 14:30:22 (GMT)
commit6e360c3d1ad0bbf16377cf5d2d9f8eac1f8092a8 (patch)
tree833b08f4554fe3791997147f2fbf9f826b62860b /generic/tclInt.h
parent98ce25af617901be6af682a617c9b35abee2c548 (diff)
downloadtcl-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.h18
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);