summaryrefslogtreecommitdiffstats
path: root/generic/tclIntDecls.h
diff options
context:
space:
mode:
authorstanton <stanton>1999-04-22 22:57:06 (GMT)
committerstanton <stanton>1999-04-22 22:57:06 (GMT)
commit804bb2b478378a4c8bdf5426fc4f01fe8310d1f9 (patch)
tree7d3cbee11446913d235f80af0181bb20588351fc /generic/tclIntDecls.h
parenteeb2fba346c1470404ea5892db056f44d8decb22 (diff)
downloadtcl-804bb2b478378a4c8bdf5426fc4f01fe8310d1f9.zip
tcl-804bb2b478378a4c8bdf5426fc4f01fe8310d1f9.tar.gz
tcl-804bb2b478378a4c8bdf5426fc4f01fe8310d1f9.tar.bz2
* generic/tclInt.h:
* generic/tclInt.decls: * generic/tclCompile.c: Added TclSetByteCodeFromAny that takes a hook procedure to invoke after compilation but before the byte codes are emitted. This makes it possible to do postprocessing on the compiled byte codes before the ByteCode is generated. * generic/tclLiteral.c: Added TclHideLiteral and TclAddLiteralObj to make it possible to create local unshared literal objects.
Diffstat (limited to 'generic/tclIntDecls.h')
-rw-r--r--generic/tclIntDecls.h29
1 files changed, 28 insertions, 1 deletions
diff --git a/generic/tclIntDecls.h b/generic/tclIntDecls.h
index 837ff62..61edee0 100644
--- a/generic/tclIntDecls.h
+++ b/generic/tclIntDecls.h
@@ -11,7 +11,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclIntDecls.h,v 1.7 1999/04/21 21:50:27 rjohnson Exp $
+ * RCS: @(#) $Id: tclIntDecls.h,v 1.8 1999/04/22 22:57:07 stanton Exp $
*/
#ifndef _TCLINTDECLS
@@ -444,6 +444,18 @@ EXTERN int TclLooksLikeInt _ANSI_ARGS_((char * bytes,
/* 141 */
EXTERN char * TclpGetCwd _ANSI_ARGS_((Tcl_Interp * interp,
Tcl_DString * cwdPtr));
+/* 142 */
+EXTERN int TclSetByteCodeFromAny _ANSI_ARGS_((
+ Tcl_Interp * interp, Tcl_Obj * objPtr,
+ CompileHookProc * hookProc,
+ ClientData clientData));
+/* 143 */
+EXTERN int TclAddLiteralObj _ANSI_ARGS_((
+ struct CompileEnv * envPtr, Tcl_Obj * objPtr,
+ LiteralEntry ** litPtrPtr));
+/* 144 */
+EXTERN void TclHideLiteral _ANSI_ARGS_((Tcl_Interp * interp,
+ struct CompileEnv * envPtr, int index));
typedef struct TclIntStubs {
int magic;
@@ -591,6 +603,9 @@ typedef struct TclIntStubs {
int (*tclpLoadFile) _ANSI_ARGS_((Tcl_Interp * interp, char * fileName, char * sym1, char * sym2, Tcl_PackageInitProc ** proc1Ptr, Tcl_PackageInitProc ** proc2Ptr, ClientData * clientDataPtr)); /* 139 */
int (*tclLooksLikeInt) _ANSI_ARGS_((char * bytes, int length)); /* 140 */
char * (*tclpGetCwd) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_DString * cwdPtr)); /* 141 */
+ int (*tclSetByteCodeFromAny) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, CompileHookProc * hookProc, ClientData clientData)); /* 142 */
+ int (*tclAddLiteralObj) _ANSI_ARGS_((struct CompileEnv * envPtr, Tcl_Obj * objPtr, LiteralEntry ** litPtrPtr)); /* 143 */
+ void (*tclHideLiteral) _ANSI_ARGS_((Tcl_Interp * interp, struct CompileEnv * envPtr, int index)); /* 144 */
} TclIntStubs;
extern TclIntStubs *tclIntStubsPtr;
@@ -1130,6 +1145,18 @@ extern TclIntStubs *tclIntStubsPtr;
#define TclpGetCwd \
(tclIntStubsPtr->tclpGetCwd) /* 141 */
#endif
+#ifndef TclSetByteCodeFromAny
+#define TclSetByteCodeFromAny \
+ (tclIntStubsPtr->tclSetByteCodeFromAny) /* 142 */
+#endif
+#ifndef TclAddLiteralObj
+#define TclAddLiteralObj \
+ (tclIntStubsPtr->tclAddLiteralObj) /* 143 */
+#endif
+#ifndef TclHideLiteral
+#define TclHideLiteral \
+ (tclIntStubsPtr->tclHideLiteral) /* 144 */
+#endif
#endif /* defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) */