Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Tcl_ExprLongObj(3)	     Tcl Library Procedures	      Tcl_ExprLongObj(3)

________________________________________________________________________________

NAME
     Tcl_ExprLongObj, Tcl_ExprDoubleObj, Tcl_ExprBooleanObj, Tcl_ExprObj - eval-
     uate 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 objPtr.

     Tcl_Obj *objPtr (in)		     Pointer to a value  containing  the
					     expression to evaluate.

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

     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  value  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  argu-
     ment, and it can have any of the forms accepted by the expr command.

     The  interp  argument refers to an interpreter used to evaluate the expres-
     sion (e.g. for variables and nested Tcl commands) and to return  error  in-
     formation.

     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  embed-
     ded 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_ExprLon-
     gObj 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 ex-
     pression's actual value is a non-numeric string then an error is returned.

     Tcl_ExprDoubleObj	stores a floating-point value at *doublePtr.  If the ex-
     pression'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  ex-
     pression'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  ex-
     pression'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 value containing the expression's value  at  *resultPtrPtr.   In
     this case, the caller is responsible for calling Tcl_DecrRefCount to decre-
     ment the value's reference count when it is finished with the value.

SEE ALSO
     Tcl_ExprLong,  Tcl_ExprDouble,  Tcl_ExprBoolean, Tcl_ExprString, Tcl_GetOb-
     jResult

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

Tcl				       8.0		      Tcl_ExprLongObj(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=Tcl_ExprLongObj.tcl86&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help