ExprLong

Tcl_ExprLong(3)             Tcl Library Procedures             Tcl_ExprLong(3)



______________________________________________________________________________

NAME
       Tcl_ExprLong, Tcl_ExprDouble, Tcl_ExprBoolean, Tcl_ExprString -
       evaluate an expression

SYNOPSIS
       #include <tcl.h>

       int
       Tcl_ExprLong(interp, string, longPtr)

       int
       Tcl_ExprDouble(interp, string, doublePtr)

       int
       Tcl_ExprBoolean(interp, string, booleanPtr)

       int
       Tcl_ExprString(interp, string)

ARGUMENTS
       Tcl_Interp   *interp       (in)      Interpreter in whose context to
                                            evaluate string.

       char         *string       (in)      Expression to be evaluated.  Must
                                            be in writable memory (the
                                            expression parser makes temporary
                                            modifications to the string during
                                            parsing, which it undoes before
                                            returning).

       long         *longPtr      (out)     Pointer to location in which to
                                            store the integer value of the
                                            expression.

       int          *doublePtr    (out)     Pointer to location in which to
                                            store the floating-point value of
                                            the expression.

       int          *booleanPtr   (out)     Pointer to location in which to
                                            store the 0/1 boolean value of the
                                            expression.
_________________________________________________________________


DESCRIPTION
       These four procedures all evaluate an expression, returning the result
       in one of four different forms.  The expression is given by the string
       argument, and it can have any of the forms accepted by the expr
       command.  The interp argument refers to an interpreter used to evaluate
       the expression (e.g. for variables and nested Tcl commands) and to
       return error information.  Interp->result is assumed to be initialized
       in the standard fashion when any of the procedures are invoked.

       For all of these procedures the return value is a standard Tcl result:
       TCL_OK means the expression was successfully evaluated, and TCL_ERROR
       means that an error occurred while evaluating the expression.  If
       TCL_ERROR is returned then interp->result will hold a message
       describing the error.  If an error occurs while executing a Tcl command
       embedded in the expression then that error will be returned.

       If the expression is successfully evaluated, then its value is returned
       in one of four forms, depending on which procedure is invoked.
       Tcl_ExprLong stores an integer value at *longPtr.  If the expression's
       actual value is a floating-point number, then it is truncated to an
       integer.  If the expression's actual value is a non-numeric string then
       an error is returned.

       Tcl_ExprDouble stores a floating-point value at *doublePtr.  If the
       expression's actual value is an integer, it is converted to floating-
       point.  If the expression's actual value is a non-numeric string then
       an error is returned.

       Tcl_ExprBoolean stores a 0/1 integer value at *booleanPtr.  If the
       expression's actual value is an integer or floating-point number, then
       Tcl_ExprBoolean stores 0 at *booleanPtr if the value was zero and 1
       otherwise.  If the expression's actual value is a non-numeric string
       then it must be one of the values accepted by Tcl_GetBoolean, such as
       ``yes'' or ``no'', or else an error occurs.

       Tcl_ExprString returns the value of the expression as a string stored
       in interp->result.  If the expression's actual value is an integer then
       Tcl_ExprString converts it to a string using sprintf with a ``%d''
       converter.  If the expression's actual value is a floating-point
       number, then Tcl_ExprString calls Tcl_PrintDouble to convert it to a
       string.


KEYWORDS
       boolean, double, evaluate, expression, integer, string



Tcl                                   7.0                      Tcl_ExprLong(3)