home *** CD-ROM | disk | FTP | other *** search
- /*
- * tcl.h --
- *
- * This header file describes the externally-visible facilities
- * of the Tcl interpreter.
- *
- * Copyright 1987 Regents of the University of California
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies. The University of California
- * makes no representations about the suitability of this
- * software for any purpose. It is provided "as is" without
- * express or implied warranty.
- *
- * $Header: /sprite/src/lib/tcl/RCS/tcl.h,v 1.33 90/01/15 14:06:02 ouster Exp $ SPRITE (Berkeley)
- */
-
- #ifndef _TCL
- #define _TCL
-
- #define TCL_VERSION "2.1"
-
- /*
- * Data structures defined opaquely in this module. The definitions
- * below just provide dummy types. A few fields are made visible in
- * Tcl_Interp structures, namely those for returning string values.
- * Note: any change to the Tcl_Interp definition below must be mirrored
- * in the "real" definition in tclInt.h.
- */
-
- typedef struct {
- char *result; /* Points to result string returned by last
- * command. */
- int dynamic; /* Non-zero means result is dynamically-
- * allocated and must be freed by Tcl_Eval
- * before executing the next command. */
- int errorLine; /* When TCL_ERROR is returned, this gives
- * the line number within the command where
- * the error occurred (1 means first line). */
- } Tcl_Interp;
- typedef int *Tcl_Trace;
-
- /*
- * When a TCL command returns, the string pointer interp->result points to
- * a string containing return information from the command. In addition,
- * the command procedure returns an integer value, which is one of the
- * following:
- *
- * TCL_OK Command completed normally; interp->result contains
- * the command's result.
- * TCL_ERROR The command couldn't be completed successfully;
- * interp->result describes what went wrong.
- * TCL_RETURN The command requests that the current procedure
- * return; interp->result contains the procedure's
- * return value.
- * TCL_BREAK The command requests that the innermost loop
- * be exited; interp->result is meaningless.
- * TCL_CONTINUE Go on to the next iteration of the current loop;
- * interp->result is meaninless.
- */
-
- #define TCL_OK 0
- #define TCL_ERROR 1
- #define TCL_RETURN 2
- #define TCL_BREAK 3
- #define TCL_CONTINUE 4
-
- #define TCL_RESULT_SIZE 199
-
- /*
- * Flag values passed to Tcl_Eval (see the man page for details):
- */
-
- #define TCL_BRACKET_TERM 1
-
- /*
- * Flag values passed to Tcl_Return (see the man page for details):
- */
-
- #define TCL_STATIC 0
- #define TCL_DYNAMIC 1
- #define TCL_VOLATILE 2
-
- /*
- * Exported Tcl procedures:
- */
-
- void panic(char *format, ...);
- void *ckalloc(size_t len);
- void ckfree(void *what);
-
- void Tcl_AddErrorInfo(Tcl_Interp *interp, char *message);
- char Tcl_Backslash(char *src, int *readPtr);
- char *Tcl_Concat(int argc, char **argv);
- void Tcl_CreateCommand(Tcl_Interp *interp, char *cmdName, int (*proc)(),
- int *clientData, void (*deleteProc)());
-
- Tcl_Interp *Tcl_CreateInterp(void);
- int *Tcl_CreateTrace(Tcl_Interp *interp, int level, void (*proc)(),
- int *clientData);
- void Tcl_DeleteCommand(Tcl_Interp *interp, char *cmdName);
- void Tcl_DeleteInterp(Tcl_Interp *interp);
- void Tcl_DeleteTrace(Tcl_Interp *interp, int *trace);
-
- int Tcl_Eval(Tcl_Interp *interp, char *cmd, int flags, char **termPtr);
- int Tcl_Expr(Tcl_Interp *interp, char *string, int *valuePtr);
- char *Tcl_GetVar(Tcl_Interp *interp, char *varName, int global);
- char *Tcl_Merge(int argc, char **argv);
- char *Tcl_ParseVar(Tcl_Interp *interp, char *string, char **termPtr);
- void Tcl_Return(Tcl_Interp *interp, char *string, int status);
- void Tcl_SetVar(Tcl_Interp *interp, char *varName, char *newValue,
- int global);
- int Tcl_SplitList(Tcl_Interp *interp, char *list, int *argcPtr,
- char ***argvPtr);
- int Tcl_StringMatch(char *string, char *pattern);
- void Tcl_WatchInterp(Tcl_Interp *interp, void (*proc)(), int *clientData);
-
- /*
- * Built-in Tcl command procedures:
- */
-
- int Tcl_BreakCmd(int *dummy, Tcl_Interp *interp, int argc, char **argv);
- int Tcl_CaseCmd(int *dummy, Tcl_Interp *interp, int argc, char **argv);
- int Tcl_CatchCmd(int *dummy, Tcl_Interp *interp, int argc, char **argv);
- int Tcl_ConcatCmd(int *dummy, Tcl_Interp *interp, int argc, char **argv);
- int Tcl_ContinueCmd(int *dummy, Tcl_Interp *interp, int argc, char **argv);
- int Tcl_ErrorCmd(int *dummy, Tcl_Interp *interp, int argc, char **argv);
- int Tcl_EvalCmd(int *dummy, Tcl_Interp *interp, int argc, char **argv);
- int Tcl_ExecCmd(int *dummy, Tcl_Interp *interp, int argc, char **argv);
- int Tcl_ExprCmd(int *dummy, Tcl_Interp *interp, int argc, char **argv);
- int Tcl_FileCmd(int *dummy, Tcl_Interp *interp, int argc, char **argv);
- int Tcl_ForCmd(int *dummy, Tcl_Interp *interp, int argc, char **argv);
- int Tcl_ForeachCmd(int *dummy, Tcl_Interp *interp, int argc, char **argv);
- int Tcl_FormatCmd(int *dummy, Tcl_Interp *interp, int argc, char **argv);
- int Tcl_GlobalCmd(int *dummy, Tcl_Interp *interp, int argc, char **argv);
-
- int Tcl_IfCmd(int *dummy, Tcl_Interp *interp, int argc, char **argv);
- int Tcl_InfoCmd(int *dummy, Tcl_Interp *interp, int argc, char **argv);
- int Tcl_IndexCmd(int *dummy, Tcl_Interp *interp, int argc, char **argv);
- int Tcl_LengthCmd(int *dummy, Tcl_Interp *interp, int argc, char **argv);
- int Tcl_ListCmd(int *dummy, Tcl_Interp *interp, int argc, char **argv);
- int Tcl_PrintCmd(int *notUsed, Tcl_Interp *interp, int argc, char **argv);
- int Tcl_ProcCmd(int *dummy, Tcl_Interp *interp, int argc, char **argv);
- int Tcl_RangeCmd(int *notUsed, Tcl_Interp *interp, int argc, char **argv);
- int Tcl_RenameCmd(int *dummy, Tcl_Interp *interp, int argc, char **argv);
- int Tcl_ReturnCmd(int *dummy, Tcl_Interp *interp, int argc, char **argv);
- int Tcl_ScanCmd(int *dummy, Tcl_Interp *interp, int argc, char **argv);
- int Tcl_SetCmd(int *dummy, Tcl_Interp *interp, int argc, char **argv);
- int Tcl_SourceCmd(int *dummy, Tcl_Interp *interp, int argc, char **argv);
- int Tcl_StringCmd(int *dummy, Tcl_Interp *interp, int argc, char **argv);
- int Tcl_TimeCmd(int *dummy, Tcl_Interp *interp, int argc, char **argv);
- int Tcl_UplevelCmd(int *dummy, Tcl_Interp *interp, int argc, char **argv);
-
- /*
- * Miscellaneous declarations (to allow Tcl to be used stand-alone,
- * without the rest of Sprite).
- */
- #ifndef _CLIENTDATA
- typedef int *ClientData;
- #define _CLIENTDATA
- #endif
-
- #ifndef NULL
- #define NULL 0
- #endif
-
- /* Portability stuff */
- #ifndef BSD
- #define bcopy(f,t,l) memcpy(t,f,l)
- #endif
-
- #endif /* _TCL */
-
-
-