root/tcl.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. Tcl_Interp

/*
 * 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 */

/* [<][>][^][v][top][bottom][index][help] */