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)

NAME | SYNOPSIS | ARGUMENTS | DESCRIPTION | SEE ALSO | KEYWORDS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Tcl_ExprBoolean.tcl87&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help