 |
display_statements |
Function (ROM Call 0x4E) |
Converts tokenized expressions or TI-Basic statements to the printable form.
display_statements converts the expression (or a group of tokenized TI-Basic statements)
pointed to by ptr from RPN form to the
standard printable ("algebraic") form, and returns a handle to
the memory block where the converted string is stored (you don't need to allocate anything by
yourself, this function will do it instead; note that this routine may cause heap compression).
It will return H_NULL if memory is full.
Newline is a Boolean flag: when it is
nonzero, all newline characters will be replaced with ':', otherwise they will remain intact.
FullPrec is also a Boolean flag: when it is non-zero,
all floating point values will be converted using the maximal precision (14 digits), else
current precision settings (from TI-Basic MODE dialog) will be used. Here is an ilustrative
example for usage of this command (take a look at the "Integrate" example as well):
push_parse_text ("expand((x+1)(x+2)(x+3))");
NG_rationalESI (top_estack);
handle = display_statements (top_estack, 1, 1);
printf_xy (0, 40, "%s", HeapDeref (handle));
HeapFree (handle);
See push_parse_text, NG_rationalESI,
HeapDeref and HeapFree
to understand how this example works.
display_statements will always convert expressions into the "cannonic printing (external) form".
For example, both x*3 and 3*x will be displayed as 3*x, x*y^(-1) will be displayed as x/y etc.
Note: Although display_statements is very similar to Parse1DExpr
and both of them may usually be used for the same purposes, display_statements is used in TIOS for
printing TI-Basic statements (from programs) and for the detokenization (in NG_RPNToText),
and Parse1DExpr is used for printing expressions.
Uses: index_below_display_expression_aux, HeapAlloc, HeapFree, HeapLock, HeapRealloc, HeapUnlock, HLock, ER_catch, ER_success, ER_throwVar, OSDisableBreak, OSEnableBreak, ROM Call 0x5CB
Used by: NG_RPNToText, handleRclKey, TE_handleEvent, tokenize_if_TI_92_or_text