|
|
1.1 ! root 1: /* ! 2: * tcl.h -- ! 3: * ! 4: * This header file describes the externally-visible facilities ! 5: * of the Tcl interpreter. ! 6: * ! 7: * Copyright 1987 Regents of the University of California ! 8: * Permission to use, copy, modify, and distribute this ! 9: * software and its documentation for any purpose and without ! 10: * fee is hereby granted, provided that the above copyright ! 11: * notice appear in all copies. The University of California ! 12: * makes no representations about the suitability of this ! 13: * software for any purpose. It is provided "as is" without ! 14: * express or implied warranty. ! 15: * ! 16: * $Header: /sprite/src/lib/tcl/RCS/tcl.h,v 1.35 90/04/18 16:05:56 ouster Exp $ SPRITE (Berkeley) ! 17: */ ! 18: ! 19: #ifndef _TCL ! 20: #define _TCL ! 21: ! 22: /* ! 23: * Data structures defined opaquely in this module. The definitions ! 24: * below just provide dummy types. A few fields are made visible in ! 25: * Tcl_Interp structures, namely those for returning string values. ! 26: * Note: any change to the Tcl_Interp definition below must be mirrored ! 27: * in the "real" definition in tclInt.h. ! 28: */ ! 29: ! 30: typedef struct Tcl_Interp{ ! 31: char *result; /* Points to result string returned by last ! 32: * command. */ ! 33: int dynamic; /* Non-zero means result is dynamically- ! 34: * allocated and must be freed by Tcl_Eval ! 35: * before executing the next command. */ ! 36: int errorLine; /* When TCL_ERROR is returned, this gives ! 37: * the line number within the command where ! 38: * the error occurred (1 means first line). */ ! 39: } Tcl_Interp; ! 40: ! 41: typedef int *Tcl_Trace; ! 42: typedef int *Tcl_CmdBuf; ! 43: ! 44: /* ! 45: * When a TCL command returns, the string pointer interp->result points to ! 46: * a string containing return information from the command. In addition, ! 47: * the command procedure returns an integer value, which is one of the ! 48: * following: ! 49: * ! 50: * TCL_OK Command completed normally; interp->result contains ! 51: * the command's result. ! 52: * TCL_ERROR The command couldn't be completed successfully; ! 53: * interp->result describes what went wrong. ! 54: * TCL_RETURN The command requests that the current procedure ! 55: * return; interp->result contains the procedure's ! 56: * return value. ! 57: * TCL_BREAK The command requests that the innermost loop ! 58: * be exited; interp->result is meaningless. ! 59: * TCL_CONTINUE Go on to the next iteration of the current loop; ! 60: * interp->result is meaninless. ! 61: */ ! 62: ! 63: #define TCL_OK 0 ! 64: #define TCL_ERROR 1 ! 65: #define TCL_RETURN 2 ! 66: #define TCL_BREAK 3 ! 67: #define TCL_CONTINUE 4 ! 68: ! 69: #define TCL_RESULT_SIZE 199 ! 70: ! 71: /* ! 72: * Flag values passed to Tcl_Eval (see the man page for details; also ! 73: * see tclInt.h for additional flags that are only used internally by ! 74: * Tcl): ! 75: */ ! 76: ! 77: #define TCL_BRACKET_TERM 1 ! 78: ! 79: /* ! 80: * Flag value passed to Tcl_RecordAndEval to request no evaluation ! 81: * (record only). ! 82: */ ! 83: ! 84: #define TCL_NO_EVAL -1 ! 85: ! 86: /* ! 87: * Flag values passed to Tcl_Return (see the man page for details): ! 88: */ ! 89: ! 90: #define TCL_STATIC 0 ! 91: #define TCL_DYNAMIC 1 ! 92: #define TCL_VOLATILE 2 ! 93: ! 94: #ifndef _CLIENTDATA ! 95: typedef int *ClientData; ! 96: #define _CLIENTDATA ! 97: #endif ! 98: ! 99: /* ! 100: * Exported Tcl procedures: ! 101: */ ! 102: ! 103: typedef int (*Tcl_Cmdfn)(ClientData, Tcl_Interp *, int, char **); ! 104: typedef void (*Tcl_Tracefn)(ClientData, Tcl_Interp *, int, char *, Tcl_Cmdfn, ClientData, int, char **); ! 105: extern char * Tcl_AssembleCmd(Tcl_CmdBuf, char *); ! 106: extern void Tcl_AddErrorInfo(Tcl_Interp *, char *); ! 107: extern char Tcl_Backslash(char *, int *); ! 108: extern char * Tcl_Concat(int, char **); ! 109: extern Tcl_CmdBuf Tcl_CreateCmdBuf(void); ! 110: extern void Tcl_CreateCommand(Tcl_Interp *, char *, Tcl_Cmdfn, ClientData, void (*)(ClientData)); ! 111: extern Tcl_Interp * Tcl_CreateInterp(void); ! 112: extern Tcl_Trace Tcl_CreateTrace(Tcl_Interp *, int, Tcl_Tracefn, ClientData); ! 113: extern void Tcl_DeleteCmdBuf(Tcl_CmdBuf); ! 114: extern void Tcl_DeleteCommand(Tcl_Interp *, char *); ! 115: extern void Tcl_DeleteInterp(Tcl_Interp *); ! 116: extern void Tcl_DeleteTrace(Tcl_Interp *, Tcl_Trace); ! 117: extern int Tcl_Eval(Tcl_Interp *, char *, int, char **); ! 118: extern int Tcl_Expr(Tcl_Interp *, char *, int *); ! 119: extern char * Tcl_GetVar(Tcl_Interp *, char *, int); ! 120: extern char * Tcl_Merge(int, char **); ! 121: extern char * Tcl_ParseVar(Tcl_Interp *, char *, char **); ! 122: extern int Tcl_RecordAndEval(Tcl_Interp *, char *, int); ! 123: extern void Tcl_Return(Tcl_Interp *, char *, int); ! 124: extern void Tcl_SetVar(Tcl_Interp *, char *, char *, int); ! 125: extern int Tcl_SplitList(Tcl_Interp *, char *, int *, char ***); ! 126: extern int Tcl_StringMatch(char *, char *); ! 127: extern char * Tcl_TildeSubst(Tcl_Interp *, char *); ! 128: extern void Tcl_WatchInterp(Tcl_Interp *, void (*)(void), ClientData); ! 129: ! 130: /* ! 131: * Built-in Tcl command procedures: ! 132: */ ! 133: ! 134: extern int Tcl_BreakCmd(ClientData , Tcl_Interp *, int , char **); ! 135: extern int Tcl_CaseCmd(ClientData , Tcl_Interp *, int , char **); ! 136: extern int Tcl_CatchCmd(ClientData , Tcl_Interp *, int , char **); ! 137: extern int Tcl_ConcatCmd(ClientData , Tcl_Interp *, int , char **); ! 138: extern int Tcl_ContinueCmd(ClientData , Tcl_Interp *, int , char **); ! 139: extern int Tcl_ErrorCmd(ClientData , Tcl_Interp *, int , char **); ! 140: extern int Tcl_EvalCmd(ClientData , Tcl_Interp *, int , char **); ! 141: extern int Tcl_ExecCmd(ClientData , Tcl_Interp *, int , char **); ! 142: extern int Tcl_ExprCmd(ClientData , Tcl_Interp *, int , char **); ! 143: extern int Tcl_FileCmd(ClientData , Tcl_Interp *, int , char **); ! 144: extern int Tcl_ForCmd(ClientData , Tcl_Interp *, int , char **); ! 145: extern int Tcl_ForeachCmd(ClientData , Tcl_Interp *, int , char **); ! 146: extern int Tcl_FormatCmd(ClientData , Tcl_Interp *, int , char **); ! 147: extern int Tcl_GlobCmd(ClientData , Tcl_Interp *, int , char **); ! 148: extern int Tcl_GlobalCmd(ClientData , Tcl_Interp *, int , char **); ! 149: extern int Tcl_HistoryCmd(ClientData , Tcl_Interp *, int , char **); ! 150: extern int Tcl_IfCmd(ClientData , Tcl_Interp *, int , char **); ! 151: extern int Tcl_InfoCmd(ClientData , Tcl_Interp *, int , char **); ! 152: extern int Tcl_IndexCmd(ClientData , Tcl_Interp *, int , char **); ! 153: extern int Tcl_LengthCmd(ClientData , Tcl_Interp *, int , char **); ! 154: extern int Tcl_ListCmd(ClientData , Tcl_Interp *, int , char **); ! 155: extern int Tcl_PrintCmd(ClientData , Tcl_Interp *, int , char **); ! 156: extern int Tcl_ProcCmd(ClientData , Tcl_Interp *, int , char **); ! 157: extern int Tcl_RangeCmd(ClientData , Tcl_Interp *, int , char **); ! 158: extern int Tcl_RenameCmd(ClientData , Tcl_Interp *, int , char **); ! 159: extern int Tcl_ReturnCmd(ClientData , Tcl_Interp *, int , char **); ! 160: extern int Tcl_ScanCmd(ClientData , Tcl_Interp *, int , char **); ! 161: extern int Tcl_SetCmd(ClientData , Tcl_Interp *, int , char **); ! 162: extern int Tcl_SourceCmd(ClientData , Tcl_Interp *, int , char **); ! 163: extern int Tcl_StringCmd(ClientData , Tcl_Interp *, int , char **); ! 164: extern int Tcl_TimeCmd(ClientData , Tcl_Interp *, int , char **); ! 165: extern int Tcl_UplevelCmd(ClientData , Tcl_Interp *, int , char **); ! 166: ! 167: /* ! 168: * Miscellaneous declarations (to allow Tcl to be used stand-alone, ! 169: * without the rest of Sprite). ! 170: */ ! 171: ! 172: #ifndef NULL ! 173: #define NULL 0 ! 174: #endif ! 175: ! 176: #endif _TCL
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.