[25] | 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 |
---|