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, ROM Call 0x49C, ROM Call 0x4B1, ROM Call 0x4C2, ROM Call 0x4C7, ROM Call 0x4CA, ROM Call 0x4D1, ROM Call 0x4E6, ROM Call 0x5F1