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

FreeBSD Manual Pages

  
 
  

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

______________________________________________________________________________

NAME
       Tcl_ExprLong,  Tcl_ExprDouble, Tcl_ExprBoolean, Tcl_ExprString -	evalu-
       ate an expression

SYNOPSIS
       #include	<tcl.h>

       int
       Tcl_ExprLong(interp, expr, longPtr)

       int
       Tcl_ExprDouble(interp, expr, doublePtr)

       int
       Tcl_ExprBoolean(interp, expr, booleanPtr)

       int
       Tcl_ExprString(interp, expr)

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

       const char *expr	(in)		    Expression to be evaluated.

       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.
______________________________________________________________________________

DESCRIPTION
       These four procedures all evaluate the expression given by the expr ar-
       gument  and  return the result in one of	four different forms.  The ex-
       pression	can have any of	the forms accepted by the expr command.	  Note
       that  these  procedures	have  been largely replaced by the value-based
       procedures Tcl_ExprLongObj, Tcl_ExprDoubleObj, Tcl_ExprBooleanObj,  and
       Tcl_ExprObj.   Those value-based	procedures evaluate an expression held
       in a Tcl	value instead of a string.  The	value argument can  retain  an
       internal	representation that is more efficient to execute.

       The  interp  argument refers to an interpreter used to evaluate the ex-
       pression	(e.g. for variables and	nested Tcl commands) and to return er-
       ror 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 the interpreter's 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_Ex-
       prLong 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 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_ExprBoolean	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 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 the interpreter's result.

SEE ALSO
       Tcl_ExprLongObj,	Tcl_ExprDoubleObj, Tcl_ExprBooleanObj, Tcl_ExprObj

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

Tcl				      7.0		       Tcl_ExprLong(3)

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

home | help