ABCDEFGHIJKLMNOPQRSTUVWXYZ

ExprLongObj

Tcl_ExprLongObj(3)          Tcl Library Procedures          Tcl_ExprLongObj(3)



______________________________________________________________________________

NAME
       Tcl_ExprLongObj,  Tcl_ExprDoubleObj,  Tcl_ExprBooleanObj, Tcl_ExprObj -
       evaluate an expression

SYNOPSIS
       #include <tcl.h>

       int
       Tcl_ExprLongObj(interp, objPtr, longPtr)

       int
       Tcl_ExprDoubleObj(interp, objPtr, doublePtr)

       int
       Tcl_ExprBooleanObj(interp, objPtr, booleanPtr)

       int
       Tcl_ExprObj(interp, objPtr, resultPtrPtr)

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

       Tcl_Obj      *objPtr         (in)      Pointer  to an object containing
                                              the expression to evaluate.

       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.

       Tcl_Obj      *resultPtrPtr   (out)     Pointer to location in which  to
                                              store  a  pointer  to the object
                                              that  is  the  result   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  objPtr
       argument,  and  it  can have any of the forms accepted by the expr com-
       mand.

       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.

       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  a  message  describing the error can be
       retrieved using Tcl_GetObjResult.  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_ExprLongObj stores an integer value at *longPtr.   If  the  expres-
       sion'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_ExprDoubleObj  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_ExprBooleanObj stores a 0/1 integer value at *booleanPtr.   If  the
       expression's  actual value is an integer or floating-point number, then
       they store 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.

       If  Tcl_ExprObj  successfully  evaluates  the  expression,  it stores a
       pointer  to  the  Tcl  object  containing  the  expression's  value  at
       *resultPtrPtr.   In  this  case,  the caller is responsible for calling
       Tcl_DecrRefCount to decrement the object's reference count when  it  is
       finished with the object.


SEE ALSO
       Tcl_ExprLong,    Tcl_ExprDouble,    Tcl_ExprBoolean,    Tcl_ExprString,
       Tcl_GetObjResult


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



Tcl                                   8.0                   Tcl_ExprLongObj(3)