| 1 | '\" | 
|---|
| 2 | '\" Copyright (c) 1996-1997 Sun Microsystems, Inc. | 
|---|
| 3 | '\" | 
|---|
| 4 | '\" See the file "license.terms" for information on usage and redistribution | 
|---|
| 5 | '\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. | 
|---|
| 6 | '\" | 
|---|
| 7 | '\" RCS: @(#) $Id: ExprLongObj.3,v 1.9 2007/12/13 15:22:31 dgp Exp $ | 
|---|
| 8 | '\" | 
|---|
| 9 | .so man.macros | 
|---|
| 10 | .TH Tcl_ExprLongObj 3 8.0 Tcl "Tcl Library Procedures" | 
|---|
| 11 | .BS | 
|---|
| 12 | .SH NAME | 
|---|
| 13 | Tcl_ExprLongObj, Tcl_ExprDoubleObj, Tcl_ExprBooleanObj, Tcl_ExprObj \- evaluate an expression | 
|---|
| 14 | .SH SYNOPSIS | 
|---|
| 15 | .nf | 
|---|
| 16 | \fB#include <tcl.h>\fR | 
|---|
| 17 | .sp | 
|---|
| 18 | int | 
|---|
| 19 | \fBTcl_ExprLongObj\fR(\fIinterp, objPtr, longPtr\fR) | 
|---|
| 20 | .sp | 
|---|
| 21 | int | 
|---|
| 22 | \fBTcl_ExprDoubleObj\fR(\fIinterp, objPtr, doublePtr\fR) | 
|---|
| 23 | .sp | 
|---|
| 24 | int | 
|---|
| 25 | \fBTcl_ExprBooleanObj\fR(\fIinterp, objPtr, booleanPtr\fR) | 
|---|
| 26 | .sp | 
|---|
| 27 | int | 
|---|
| 28 | \fBTcl_ExprObj\fR(\fIinterp, objPtr, resultPtrPtr\fR) | 
|---|
| 29 | .SH ARGUMENTS | 
|---|
| 30 | .AS Tcl_Interp **resultPtrPtr out | 
|---|
| 31 | .AP Tcl_Interp *interp in | 
|---|
| 32 | Interpreter in whose context to evaluate \fIobjPtr\fR. | 
|---|
| 33 | .AP Tcl_Obj *objPtr in | 
|---|
| 34 | Pointer to an object containing the expression to evaluate. | 
|---|
| 35 | .AP long *longPtr out | 
|---|
| 36 | Pointer to location in which to store the integer value of the | 
|---|
| 37 | expression. | 
|---|
| 38 | .AP int *doublePtr out | 
|---|
| 39 | Pointer to location in which to store the floating-point value of the | 
|---|
| 40 | expression. | 
|---|
| 41 | .AP int *booleanPtr out | 
|---|
| 42 | Pointer to location in which to store the 0/1 boolean value of the | 
|---|
| 43 | expression. | 
|---|
| 44 | .AP Tcl_Obj **resultPtrPtr out | 
|---|
| 45 | Pointer to location in which to store a pointer to the object | 
|---|
| 46 | that is the result of the expression. | 
|---|
| 47 | .BE | 
|---|
| 48 |  | 
|---|
| 49 | .SH DESCRIPTION | 
|---|
| 50 | .PP | 
|---|
| 51 | These four procedures all evaluate an expression, returning | 
|---|
| 52 | the result in one of four different forms. | 
|---|
| 53 | The expression is given by the \fIobjPtr\fR argument, and it | 
|---|
| 54 | can have any of the forms accepted by the \fBexpr\fR command. | 
|---|
| 55 | .PP | 
|---|
| 56 | The \fIinterp\fR argument refers to an interpreter used to | 
|---|
| 57 | evaluate the expression (e.g. for variables and nested Tcl | 
|---|
| 58 | commands) and to return error information. | 
|---|
| 59 | .PP | 
|---|
| 60 | For all of these procedures the return value is a standard | 
|---|
| 61 | Tcl result: \fBTCL_OK\fR means the expression was successfully | 
|---|
| 62 | evaluated, and \fBTCL_ERROR\fR means that an error occurred while | 
|---|
| 63 | evaluating the expression. | 
|---|
| 64 | If \fBTCL_ERROR\fR is returned, | 
|---|
| 65 | then a message describing the error | 
|---|
| 66 | can be retrieved using \fBTcl_GetObjResult\fR. | 
|---|
| 67 | If an error occurs while executing a Tcl command embedded in | 
|---|
| 68 | the expression then that error will be returned. | 
|---|
| 69 | .PP | 
|---|
| 70 | If the expression is successfully evaluated, then its value is | 
|---|
| 71 | returned in one of four forms, depending on which procedure | 
|---|
| 72 | is invoked. | 
|---|
| 73 | \fBTcl_ExprLongObj\fR stores an integer value at \fI*longPtr\fR. | 
|---|
| 74 | If the expression's actual value is a floating-point number, | 
|---|
| 75 | then it is truncated to an integer. | 
|---|
| 76 | If the expression's actual value is a non-numeric string then | 
|---|
| 77 | an error is returned. | 
|---|
| 78 | .PP | 
|---|
| 79 | \fBTcl_ExprDoubleObj\fR stores a floating-point value at \fI*doublePtr\fR. | 
|---|
| 80 | If the expression's actual value is an integer, it is converted to | 
|---|
| 81 | floating-point. | 
|---|
| 82 | If the expression's actual value is a non-numeric string then | 
|---|
| 83 | an error is returned. | 
|---|
| 84 | .PP | 
|---|
| 85 | \fBTcl_ExprBooleanObj\fR stores a 0/1 integer value at \fI*booleanPtr\fR. | 
|---|
| 86 | If the expression's actual value is an integer or floating-point | 
|---|
| 87 | number, then they store 0 at \fI*booleanPtr\fR if | 
|---|
| 88 | the value was zero and 1 otherwise. | 
|---|
| 89 | If the expression's actual value is a non-numeric string then | 
|---|
| 90 | it must be one of the values accepted by \fBTcl_GetBoolean\fR | 
|---|
| 91 | such as | 
|---|
| 92 | .QW yes | 
|---|
| 93 | or | 
|---|
| 94 | .QW no , | 
|---|
| 95 | or else an error occurs. | 
|---|
| 96 | .PP | 
|---|
| 97 | If \fBTcl_ExprObj\fR successfully evaluates the expression, | 
|---|
| 98 | it stores a pointer to the Tcl object | 
|---|
| 99 | containing the expression's value at \fI*resultPtrPtr\fR. | 
|---|
| 100 | In this case, the caller is responsible for calling | 
|---|
| 101 | \fBTcl_DecrRefCount\fR to decrement the object's reference count | 
|---|
| 102 | when it is finished with the object. | 
|---|
| 103 |  | 
|---|
| 104 | .SH "SEE ALSO" | 
|---|
| 105 | Tcl_ExprLong, Tcl_ExprDouble, Tcl_ExprBoolean, Tcl_ExprString, Tcl_GetObjResult | 
|---|
| 106 |  | 
|---|
| 107 | .SH KEYWORDS | 
|---|
| 108 | boolean, double, evaluate, expression, integer, object, string | 
|---|