Chapter 15: Expressions and The Expression Stack
Strings are represented as a STR_DATA_TAG on top of the string data, which is
delimited by a null character (0) on both ends. Thus, the string "hello" is
represented as 0 h e l l o 0 STR_DATA_TAG. Since zero is also the value of
VAR_TAG, this representation looks much like a variable name. However,
variable names have a maximum length of eight characters and can contain only
valid name characters. Strings are not limited in length and can contain any
character except a null (0).
15.2.5.
One-argument Tags
Tokenized Polish representation makes no distinction between functional
expressions and operator expressions. Both are represented as an identifying
tag value on top of its argument(s). Many built-in functions require exactly one
argument, for example, sin(x), ln(x), abs(x), etc. A few of the operators also
operate on exactly one operand, for example, Lx, x!, x%, etc.
Expression
Lx
n!
20%
sin(x)
ln(abc)
abs(ln(x))
Table 15.6: Examples of Single Argument Functions and Operators
15.2.6.
Two-argument Tags
Many built-in functions require exactly two arguments, for example,
zeros(ln(x),x), mod(a, b), nCr(m, n). Functions of two arguments are represented
as the corresponding function tag on top of the first argument on top of the
second argument.
Expression
zeros(ln(x),x)
mod(a, b)
nCr(m, n)
TI-89 / TI-92 Plus Developer Guide
Representation
X_VAR_TAG CHS_TAG (change sign)
N_VAR_TAG FACTORIAL_TAG
20 1 NONNEGATIVE_INTEGER_TAG PERCENT_TAG
X_VAR_TAG SIN_TAG
VAR_TAG a b c VAR_TAG LN_TAG
X_VAR_TAG LN_TAG ABS_TAG
Representation
X_VAR_TAG X_VAR_TAG LN_TAG ZEROS_TAG
B_VAR_TAG A_VAR_TAG MOD_TAG
N_VAR_TAG M_VAR_TAG COMB_TAG (combinations)
Table 15.7: Examples of Functions of Two Arguments
Not for Distribution
167
Beta Version January 26, 2001