summaryrefslogtreecommitdiffstats
path: root/generic/tclCompileDecls.h
blob: b8e5378335e9b56f365873ea1517d2e201d7a23d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
/*
 * tclCompileDecls.h --
 *
 *	This file contains the declarations for functions that are used
 *	by the bytecode compiler and execution modules inside the Tcl
 *	core..  These interfaces are not guaranteed to remain the same between
 *	versions.  Use at your own risk.
 *
 * Copyright (c) 1998-1999 by Scriptics Corporation.
 * All rights reserved.
 *
 * RCS: @(#) $Id: tclCompileDecls.h,v 1.1.2.1 1999/03/05 20:18:04 stanton Exp $
 */

#ifndef _TCLCOMPILEDECLS
#define _TCLCOMPILEDECLS

/*
 * WARNING: This file is automatically generated by the tools/genStubs.tcl
 * script.  Any modifications to the function declarations below should be made
 * in the generic/tclInt.decls script.
 */

/* !BEGIN!: Do not edit below this line. */

/*
 * Exported function declarations:
 */

/* 0 */
EXTERN void		TclCleanupByteCode _ANSI_ARGS_((ByteCode * codePtr));
/* 1 */
EXTERN int		TclCompileExpr _ANSI_ARGS_((Tcl_Interp * interp, 
				char * string, char * lastChar, int flags, 
				CompileEnv * envPtr));
/* 2 */
EXTERN int		TclCompileQuotes _ANSI_ARGS_((Tcl_Interp * interp, 
				char * string, char * lastChar, int termChar, 
				int flags, CompileEnv * envPtr));
/* 3 */
EXTERN int		TclCompileString _ANSI_ARGS_((Tcl_Interp * interp, 
				char * string, char * lastChar, int flags, 
				CompileEnv * envPtr));
/* 4 */
EXTERN int		TclCompileDollarVar _ANSI_ARGS_((Tcl_Interp * interp, 
				char * string, char * lastChar, int flags, 
				CompileEnv * envPtr));
/* 5 */
EXTERN int		TclCreateAuxData _ANSI_ARGS_((ClientData clientData, 
				AuxDataType * typePtr, CompileEnv * envPtr));
/* 6 */
EXTERN ExecEnv *	TclCreateExecEnv _ANSI_ARGS_((Tcl_Interp * interp));
/* 7 */
EXTERN void		TclDeleteExecEnv _ANSI_ARGS_((ExecEnv * eePtr));
/* 8 */
EXTERN void		TclEmitForwardJump _ANSI_ARGS_((CompileEnv * envPtr, 
				TclJumpType jumpType, 
				JumpFixup * jumpFixupPtr));
/* 9 */
EXTERN AuxDataType *	TclGetAuxDataType _ANSI_ARGS_((char * typeName));
/* 10 */
EXTERN ExceptionRange *	 TclGetExceptionRangeForPc _ANSI_ARGS_((
				unsigned char * pc, int catchOnly, 
				ByteCode* codePtr));
/* 11 */
EXTERN InstructionDesc * TclGetInstructionTable _ANSI_ARGS_((void));
/* 12 */
EXTERN int		TclExecuteByteCode _ANSI_ARGS_((Tcl_Interp * interp, 
				ByteCode * codePtr));
/* 13 */
EXTERN void		TclExpandCodeArray _ANSI_ARGS_((CompileEnv * envPtr));
/* 14 */
EXTERN void		TclExpandJumpFixupArray _ANSI_ARGS_((
				JumpFixupArray * fixupArrayPtr));
/* 15 */
EXTERN void		TclFinalizeAuxDataTypeTable _ANSI_ARGS_((void));
/* 16 */
EXTERN int		TclFixupForwardJump _ANSI_ARGS_((CompileEnv * envPtr, 
				JumpFixup * jumpFixupPtr, int jumpDist, 
				int distThreshold));
/* 17 */
EXTERN void		TclFreeCompileEnv _ANSI_ARGS_((CompileEnv * envPtr));
/* 18 */
EXTERN void		TclFreeJumpFixupArray _ANSI_ARGS_((
				JumpFixupArray * fixupArrayPtr));
/* 19 */
EXTERN void		TclInitAuxDataTypeTable _ANSI_ARGS_((void));
/* 20 */
EXTERN void		TclInitByteCodeObj _ANSI_ARGS_((Tcl_Obj * objPtr, 
				CompileEnv * envPtr));
/* 21 */
EXTERN void		TclInitCompileEnv _ANSI_ARGS_((Tcl_Interp * interp, 
				CompileEnv * envPtr, char * string));
/* 22 */
EXTERN void		TclInitJumpFixupArray _ANSI_ARGS_((
				JumpFixupArray * fixupArrayPtr));
/* 23 */
EXTERN int		TclObjIndexForString _ANSI_ARGS_((char * start, 
				int length, int allocStrRep, int inHeap, 
				CompileEnv * envPtr));
/* 24 */
EXTERN int		TclPrintInstruction _ANSI_ARGS_((ByteCode* codePtr, 
				unsigned char * pc));
/* 25 */
EXTERN void		TclPrintSource _ANSI_ARGS_((FILE * outFile, 
				char * string, int maxChars));
/* 26 */
EXTERN void		TclRegisterAuxDataType _ANSI_ARGS_((
				AuxDataType * typePtr));

typedef struct TclCompileStubs {
    int magic;
    struct TclCompileStubHooks *hooks;

    void (*tclCleanupByteCode) _ANSI_ARGS_((ByteCode * codePtr)); /* 0 */
    int (*tclCompileExpr) _ANSI_ARGS_((Tcl_Interp * interp, char * string, char * lastChar, int flags, CompileEnv * envPtr)); /* 1 */
    int (*tclCompileQuotes) _ANSI_ARGS_((Tcl_Interp * interp, char * string, char * lastChar, int termChar, int flags, CompileEnv * envPtr)); /* 2 */
    int (*tclCompileString) _ANSI_ARGS_((Tcl_Interp * interp, char * string, char * lastChar, int flags, CompileEnv * envPtr)); /* 3 */
    int (*tclCompileDollarVar) _ANSI_ARGS_((Tcl_Interp * interp, char * string, char * lastChar, int flags, CompileEnv * envPtr)); /* 4 */
    int (*tclCreateAuxData) _ANSI_ARGS_((ClientData clientData, AuxDataType * typePtr, CompileEnv * envPtr)); /* 5 */
    ExecEnv * (*tclCreateExecEnv) _ANSI_ARGS_((Tcl_Interp * interp)); /* 6 */
    void (*tclDeleteExecEnv) _ANSI_ARGS_((ExecEnv * eePtr)); /* 7 */
    void (*tclEmitForwardJump) _ANSI_ARGS_((CompileEnv * envPtr, TclJumpType jumpType, JumpFixup * jumpFixupPtr)); /* 8 */
    AuxDataType * (*tclGetAuxDataType) _ANSI_ARGS_((char * typeName)); /* 9 */
    ExceptionRange * (*tclGetExceptionRangeForPc) _ANSI_ARGS_((unsigned char * pc, int catchOnly, ByteCode* codePtr)); /* 10 */
    InstructionDesc * (*tclGetInstructionTable) _ANSI_ARGS_((void)); /* 11 */
    int (*tclExecuteByteCode) _ANSI_ARGS_((Tcl_Interp * interp, ByteCode * codePtr)); /* 12 */
    void (*tclExpandCodeArray) _ANSI_ARGS_((CompileEnv * envPtr)); /* 13 */
    void (*tclExpandJumpFixupArray) _ANSI_ARGS_((JumpFixupArray * fixupArrayPtr)); /* 14 */
    void (*tclFinalizeAuxDataTypeTable) _ANSI_ARGS_((void)); /* 15 */
    int (*tclFixupForwardJump) _ANSI_ARGS_((CompileEnv * envPtr, JumpFixup * jumpFixupPtr, int jumpDist, int distThreshold)); /* 16 */
    void (*tclFreeCompileEnv) _ANSI_ARGS_((CompileEnv * envPtr)); /* 17 */
    void (*tclFreeJumpFixupArray) _ANSI_ARGS_((JumpFixupArray * fixupArrayPtr)); /* 18 */
    void (*tclInitAuxDataTypeTable) _ANSI_ARGS_((void)); /* 19 */
    void (*tclInitByteCodeObj) _ANSI_ARGS_((Tcl_Obj * objPtr, CompileEnv * envPtr)); /* 20 */
    void (*tclInitCompileEnv) _ANSI_ARGS_((Tcl_Interp * interp, CompileEnv * envPtr, char * string)); /* 21 */
    void (*tclInitJumpFixupArray) _ANSI_ARGS_((JumpFixupArray * fixupArrayPtr)); /* 22 */
    int (*tclObjIndexForString) _ANSI_ARGS_((char * start, int length, int allocStrRep, int inHeap, CompileEnv * envPtr)); /* 23 */
    int (*tclPrintInstruction) _ANSI_ARGS_((ByteCode* codePtr, unsigned char * pc)); /* 24 */
    void (*tclPrintSource) _ANSI_ARGS_((FILE * outFile, char * string, int maxChars)); /* 25 */
    void (*tclRegisterAuxDataType) _ANSI_ARGS_((AuxDataType * typePtr)); /* 26 */
} TclCompileStubs;

extern TclCompileStubs *tclCompileStubsPtr;

#if defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS)

/*
 * Inline function declarations:
 */

#ifndef TclCleanupByteCode
#define TclCleanupByteCode(codePtr) \
	(tclCompileStubsPtr->tclCleanupByteCode)(codePtr) /* 0 */
#endif
#ifndef TclCompileExpr
#define TclCompileExpr(interp, string, lastChar, flags, envPtr) \
	(tclCompileStubsPtr->tclCompileExpr)(interp, string, lastChar, flags, envPtr) /* 1 */
#endif
#ifndef TclCompileQuotes
#define TclCompileQuotes(interp, string, lastChar, termChar, flags, envPtr) \
	(tclCompileStubsPtr->tclCompileQuotes)(interp, string, lastChar, termChar, flags, envPtr) /* 2 */
#endif
#ifndef TclCompileString
#define TclCompileString(interp, string, lastChar, flags, envPtr) \
	(tclCompileStubsPtr->tclCompileString)(interp, string, lastChar, flags, envPtr) /* 3 */
#endif
#ifndef TclCompileDollarVar
#define TclCompileDollarVar(interp, string, lastChar, flags, envPtr) \
	(tclCompileStubsPtr->tclCompileDollarVar)(interp, string, lastChar, flags, envPtr) /* 4 */
#endif
#ifndef TclCreateAuxData
#define TclCreateAuxData(clientData, typePtr, envPtr) \
	(tclCompileStubsPtr->tclCreateAuxData)(clientData, typePtr, envPtr) /* 5 */
#endif
#ifndef TclCreateExecEnv
#define TclCreateExecEnv(interp) \
	(tclCompileStubsPtr->tclCreateExecEnv)(interp) /* 6 */
#endif
#ifndef TclDeleteExecEnv
#define TclDeleteExecEnv(eePtr) \
	(tclCompileStubsPtr->tclDeleteExecEnv)(eePtr) /* 7 */
#endif
#ifndef TclEmitForwardJump
#define TclEmitForwardJump(envPtr, jumpType, jumpFixupPtr) \
	(tclCompileStubsPtr->tclEmitForwardJump)(envPtr, jumpType, jumpFixupPtr) /* 8 */
#endif
#ifndef TclGetAuxDataType
#define TclGetAuxDataType(typeName) \
	(tclCompileStubsPtr->tclGetAuxDataType)(typeName) /* 9 */
#endif
#ifndef TclGetExceptionRangeForPc
#define TclGetExceptionRangeForPc(pc, catchOnly, codePtr) \
	(tclCompileStubsPtr->tclGetExceptionRangeForPc)(pc, catchOnly, codePtr) /* 10 */
#endif
#ifndef TclGetInstructionTable
#define TclGetInstructionTable() \
	(tclCompileStubsPtr->tclGetInstructionTable)() /* 11 */
#endif
#ifndef TclExecuteByteCode
#define TclExecuteByteCode(interp, codePtr) \
	(tclCompileStubsPtr->tclExecuteByteCode)(interp, codePtr) /* 12 */
#endif
#ifndef TclExpandCodeArray
#define TclExpandCodeArray(envPtr) \
	(tclCompileStubsPtr->tclExpandCodeArray)(envPtr) /* 13 */
#endif
#ifndef TclExpandJumpFixupArray
#define TclExpandJumpFixupArray(fixupArrayPtr) \
	(tclCompileStubsPtr->tclExpandJumpFixupArray)(fixupArrayPtr) /* 14 */
#endif
#ifndef TclFinalizeAuxDataTypeTable
#define TclFinalizeAuxDataTypeTable() \
	(tclCompileStubsPtr->tclFinalizeAuxDataTypeTable)() /* 15 */
#endif
#ifndef TclFixupForwardJump
#define TclFixupForwardJump(envPtr, jumpFixupPtr, jumpDist, distThreshold) \
	(tclCompileStubsPtr->tclFixupForwardJump)(envPtr, jumpFixupPtr, jumpDist, distThreshold) /* 16 */
#endif
#ifndef TclFreeCompileEnv
#define TclFreeCompileEnv(envPtr) \
	(tclCompileStubsPtr->tclFreeCompileEnv)(envPtr) /* 17 */
#endif
#ifndef TclFreeJumpFixupArray
#define TclFreeJumpFixupArray(fixupArrayPtr) \
	(tclCompileStubsPtr->tclFreeJumpFixupArray)(fixupArrayPtr) /* 18 */
#endif
#ifndef TclInitAuxDataTypeTable
#define TclInitAuxDataTypeTable() \
	(tclCompileStubsPtr->tclInitAuxDataTypeTable)() /* 19 */
#endif
#ifndef TclInitByteCodeObj
#define TclInitByteCodeObj(objPtr, envPtr) \
	(tclCompileStubsPtr->tclInitByteCodeObj)(objPtr, envPtr) /* 20 */
#endif
#ifndef TclInitCompileEnv
#define TclInitCompileEnv(interp, envPtr, string) \
	(tclCompileStubsPtr->tclInitCompileEnv)(interp, envPtr, string) /* 21 */
#endif
#ifndef TclInitJumpFixupArray
#define TclInitJumpFixupArray(fixupArrayPtr) \
	(tclCompileStubsPtr->tclInitJumpFixupArray)(fixupArrayPtr) /* 22 */
#endif
#ifndef TclObjIndexForString
#define TclObjIndexForString(start, length, allocStrRep, inHeap, envPtr) \
	(tclCompileStubsPtr->tclObjIndexForString)(start, length, allocStrRep, inHeap, envPtr) /* 23 */
#endif
#ifndef TclPrintInstruction
#define TclPrintInstruction(codePtr, pc) \
	(tclCompileStubsPtr->tclPrintInstruction)(codePtr, pc) /* 24 */
#endif
#ifndef TclPrintSource
#define TclPrintSource(outFile, string, maxChars) \
	(tclCompileStubsPtr->tclPrintSource)(outFile, string, maxChars) /* 25 */
#endif
#ifndef TclRegisterAuxDataType
#define TclRegisterAuxDataType(typePtr) \
	(tclCompileStubsPtr->tclRegisterAuxDataType)(typePtr) /* 26 */
#endif

#endif /* defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) */

/* !END!: Do not edit above this line. */

#endif /* _TCLCOMPILEDECLS */