next_expression_index Function (ROM Call 0x10A)

estack.h

ESI next_expression_index (CESI ptr);

Finds the next entry on the expression stack.

Assuming that ptr points to an expression entry on the expression stack, next_expression_index returns the pointer which points to an expression which is located just below the expression pointed to by ptr. So, by successive calls to next_expression_index starting from top_estack, you can locate all expressions on the stack. This command will throw an error if ptr points to the END_TAG, so be careful.

Note: next_expression_index calls index_after_match_endtag for TI-Basic functions and program tags, so that inline functions are counted as entire expressions rather than of their components.


Uses: is_tail_independent_of, push_expression, push_quantum, top_estack, index_after_match_endtag, primary_tag_list, ROM Call 0x5D8
Used by: all_tail, any_tail, are_expressions_identical, can_be_approxed, compare_complex_magnitudes, compare_expressions, delete_expression, deleted_expression, factor_exponent_index, index_below_display_expression_aux, index_numeric_term, is_complex_number, is_complex0, is_free_of_tag, is_independent_of, is_independent_of_de_seq_vars, is_independent_of_tail, is_matrix, is_narrowly_independent_of, is_tail_independent_of, is_valid_smap_aggregate, last_element_index, likely_approx_to_complex_number, likely_approx_to_number, main_gen_var_index, map_unary_over_comparison, NG_graphESI, norm1_complex_Float, numeric_factor_index, Parse2DExpr, Parse2DMultiExpr, push_expression, push_internal_simplify, push_offset_array, push_parse_text, push_reversed_tail, re_index, reductum_index, remaining_factors_index, should_and_did_push_approx_arg2, TokenizeSymName, EX_getArg, SkipArg, cmd_archive, cmd_blddata, cmd_cubicreg, cmd_custom, cmd_cycle, cmd_cyclepic, cmd_delfold, cmd_delvar, cmd_dialog, cmd_disp, cmd_drawparm, cmd_drawpol, cmd_endfor, cmd_endwhile, cmd_exit, cmd_expreg, cmd_fnoff, cmd_fnon, cmd_for, cmd_goto, cmd_if, cmd_ifthen, cmd_input, cmd_inputstr, cmd_linreg, cmd_lnreg, cmd_local, cmd_lock, cmd_logistic, cmd_medmed, cmd_newdata, cmd_newpic, cmd_newplot, cmd_onevar, cmd_plotsoff, cmd_plotson, cmd_popup, cmd_powerreg, cmd_prompt, cmd_ptchg, cmd_ptoff, cmd_pton, cmd_pxlchg, cmd_pxloff, cmd_pxlon, cmd_quadreg, cmd_quartreg, cmd_randseed, cmd_request, cmd_return, cmd_shade, cmd_showstat, cmd_sinreg, cmd_sorta, cmd_sortd, cmd_stopic, cmd_text, cmd_toolbar, cmd_try, cmd_twovar, cmd_unarchiv, cmd_unlock, cmd_while, did_push_anti_deriv, did_push_series, push_1st_derivative, push_abs, push_acos, push_acosh, push_asin, push_asinh, push_atan, push_atanh, push_augment, push_colnorm, push_comdenom, push_conj, push_cos, push_cosh, push_csolve, push_cumsum, push_czeros, push_def_int, push_denominator, push_desolve, push_determinant, push_dimension, push_dotproduct, push_exp, push_expand, push_extended_prod, push_factor, push_floor, push_fractional_part, push_im, push_integer_part, push_left, push_lim, push_ln, push_log10, push_mat_to_list, push_max, push_max1, push_mid, push_min, push_min1, push_nint, push_nsolve, push_nth_derivative, push_numerator, push_ord, push_part, push_phase, push_prodlist, push_pttest, push_pxltest, push_randnorm, push_randpoly, push_re, push_rec_to_angle, push_red_row_ech, push_right, push_rotate, push_round, push_row_echelon, push_shift, push_sign, push_simult, push_sin, push_sin2, push_sinh, push_solve, push_sqrt, push_str_to_expr, push_sumlist, push_summation, push_tan, push_tanh, push_when, push_zeros, did_push_to_polar, push_and, push_assignment, push_dot_exponentiate, push_equals, push_exponentiate, push_greater_than, push_greater_than_or_equals, push_indir_name, push_less_than, push_less_than_or_equals, push_negate, push_not, push_not_equals, push_or, push_product, push_radians, push_ratio, push_substitute_no_simplify, push_sum, push_to_cylin, push_to_sphere, remaining_element_count, handleVarLinkKey, MO_digestOptions, HomePushEStack, ST_eraseHelp, ST_modKey, add_to_top, and_onto_top, are_units_consistent, convert_to_TI_92, cpt_gr_fun, cpt_gr_param, cpt_gr_polar, CustomMenuItem, de_initRes, de_loop, delete_list_element, did_push_approx_inflection_point, did_push_divide_units, did_push_lincf, did_push_var_val, divide_top, dv_create_graph_titles, EQU_getNameInfo, fix_loop_displacements, gen_version, get_lb, get_ub, GetStatValue, GM_Derivative, GM_DistArc, GM_Inflection, GM_Integrate, GM_Intersect, GM_Math1, GM_TanLine, gr_ck_solvergraph, gr_execute_seq, gr_find_el, GraphOrTableCmd, has_different_variable, has_unit_base, index_after_match_endtag, index_if_pushed_binomial_info, index_if_pushed_qquad_info, init_list_indices, init_matrix_indices, init_unit_system, InitDEMem, InitTimeSeq, integer_non_unknown, is_cFloat_agg, is_constant, is_equivalent_to, is_neg_lead_numr_coef_re_part, is_negative, is_never0, is_nonnegative, is_nonpositive, is_polynomial_in_var_or_kern, is_positive, is_real, is_totally_polynomial, is_undefined, is_units_term, linear_degree, next_var_or_kernel_index, NG_setup_graph_fun, or_onto_top, PlotDup, PlotGet, PlotPut, PlotSize, push_ans_entry, push_auto_units_conversion, push_but_factor, push_but_term, push_constant_factors, push_constant_terms, push_dependent_factors, push_dependent_terms, push_float_qr_fact, push_format, push_gcd_then_cofactors, push_independent_factors, push_independent_terms, push_lu_fact, push_make_proper, push_nonconstant_factors, push_nonconstant_terms, push_nonnumeric_factors, push_parse_prgm_or_func_text, push_poly_deg_in_var_or_kernel, push_poly_qr, push_reciprocal, push_simplify, push_simplify_statements, push_sq_matrix_to_whole_number, push_standardize, push_symbolic_qr_fact, push_user_func, push_var, raise_to_top, ReallocExprStruct, remaining_conjuncts_index, remaining_disjuncts_index, replace_top_with_post_simplified, replace_top2_with_and, replace_top2_with_imre, replace_top2_with_or, replace_top2_with_pow, replace_top2_with_prod, replace_top2_with_ratio, replace_top2_with_sum, setup_more_graph_fun, setup_unit_system, spike_geo_titles, spike_in_editor, spike_optionD, spike_titles_in_editor, store_func_def, store_to_subscripted_element, times_top, tokenize_if_TI_92_or_text, VarStoreLink, FolderDel, FolderRename, GetFuncPrgmBodyPtr, HSymDel, SymFindFolderName, VarRecall, VarStore, ROM Call 0x468, ROM Call 0x48C, ROM Call 0x48D, ROM Call 0x494, ROM Call 0x495, ROM Call 0x49B, push_dense_poly_eval, ROM Call 0x4B1, ROM Call 0x4C2, ROM Call 0x4C7, ROM Call 0x4CA, ROM Call 0x4D1, ROM Call 0x4E6, ROM Call 0x5F1