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
-
- /*
- * 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:
- */
-
- extern void Tcl_AddErrorInfo();
- extern char Tcl_Backslash();
- extern char * Tcl_Concat();
- extern void Tcl_CreateCommand();
- extern Tcl_Interp * Tcl_CreateInterp();
- extern Tcl_Trace Tcl_CreateTrace();
- extern void Tcl_DeleteCommand();
- extern void Tcl_DeleteInterp();
- extern void Tcl_DeleteTrace();
- extern int Tcl_Eval();
- extern int Tcl_Expr();
- extern char * Tcl_GetVar();
- extern char * Tcl_Merge();
- extern char * Tcl_ParseVar();
- extern void Tcl_Return();
- extern void Tcl_SetVar();
- extern int Tcl_SplitList();
- extern int Tcl_StringMatch();
- extern void Tcl_WatchInterp();
-
- /*
- * Built-in Tcl command procedures:
- */
-
- extern int Tcl_BreakCmd();
- extern int Tcl_CaseCmd();
- extern int Tcl_CatchCmd();
- extern int Tcl_ConcatCmd();
- extern int Tcl_ContinueCmd();
- extern int Tcl_ErrorCmd();
- extern int Tcl_EvalCmd();
- extern int Tcl_ExecCmd();
- extern int Tcl_ExprCmd();
- extern int Tcl_FileCmd();
- extern int Tcl_ForCmd();
- extern int Tcl_ForeachCmd();
- extern int Tcl_FormatCmd();
- extern int Tcl_GlobCmd();
- extern int Tcl_GlobalCmd();
- extern int Tcl_IfCmd();
- extern int Tcl_InfoCmd();
- extern int Tcl_IndexCmd();
- extern int Tcl_LengthCmd();
- extern int Tcl_ListCmd();
- extern int Tcl_PrintCmd();
- extern int Tcl_ProcCmd();
- extern int Tcl_RangeCmd();
- extern int Tcl_RenameCmd();
- extern int Tcl_ReturnCmd();
- extern int Tcl_ScanCmd();
- extern int Tcl_SetCmd();
- extern int Tcl_SourceCmd();
- extern int Tcl_StringCmd();
- extern int Tcl_TimeCmd();
- extern int Tcl_UplevelCmd();
-
- /*
- * Miscellaneous declarations (to allow Tcl to be used stand-alone,
- * without the rest of Sprite).
- */
-
- #ifndef NULL
- #define NULL 0
- #endif
-
- #ifndef _CLIENTDATA
- typedef int *ClientData;
- #define _CLIENTDATA
- #endif
-
- #include "ckalloc.h"
-
- /* Portability stuff */
- #ifndef BSD
- #define bcopy(f,t,l) memcpy(t,f,l)
- #endif
-
- #endif /* _TCL */
-