summaryrefslogtreecommitdiff
path: root/source/luametatex/source/tex/texequivalents.h
diff options
context:
space:
mode:
Diffstat (limited to 'source/luametatex/source/tex/texequivalents.h')
-rw-r--r--source/luametatex/source/tex/texequivalents.h165
1 files changed, 79 insertions, 86 deletions
diff --git a/source/luametatex/source/tex/texequivalents.h b/source/luametatex/source/tex/texequivalents.h
index aaf45d0c1..24a1729f9 100644
--- a/source/luametatex/source/tex/texequivalents.h
+++ b/source/luametatex/source/tex/texequivalents.h
@@ -526,22 +526,15 @@ typedef enum int_codes {
math_eqno_gap_step_code, /*tex factor/1000 used for distance between eq and eqno */
math_display_skip_mode_code,
math_scripts_mode_code,
- /* math_script_box_mode_code, */
- /* math_script_char_mode_code, */
math_limits_mode_code,
math_nolimits_mode_code,
math_rules_mode_code,
math_rules_fam_code,
math_penalties_mode_code,
math_check_fences_mode_code,
- /* math_delimiters_mode_code, */
- /* math_fences_mode_code, */
- /* math_rule_thickness_mode_code, */
math_slack_mode_code,
- /* math_flatten_mode_code, */
math_skip_mode_code,
math_double_script_mode_code,
- /* math_control_mode_code, */
math_font_control_code,
math_display_mode_code,
math_dict_group_code,
@@ -723,7 +716,7 @@ typedef enum attribute_codes {
# define eqtb_indirect_range(n) ((n < internal_glue_base) || ((n > eqtb_size) && (n <= lmt_hash_state.hash_data.top)))
# define eqtb_out_of_range(n) ((n >= undefined_control_sequence) && ((n <= eqtb_size) || n > lmt_hash_state.hash_data.top))
-# define eqtb_valid_cs(n) ((n == 0) || (n > lmt_hash_state.hash_data.top) || ((n > frozen_control_sequence) && (n <= eqtb_size)))
+# define eqtb_invalid_cs(n) ((n == 0) || (n > lmt_hash_state.hash_data.top) || ((n > frozen_control_sequence) && (n <= eqtb_size)))
# define character_in_range(i) (i >= 0 && i <= max_character_code)
# define catcode_in_range(i) (i >= 0 && i <= max_category_code)
@@ -855,73 +848,79 @@ inline void tex_set_saved_record(halfword ptr, quarterword type, quarterword lev
The rather explicit |save_| items indicate a type. They are sometimes used to lookup a specific
field (when tracing).
+
+ Todo: less of these, a few more generic ones, like count, dimen, etc
*/
typedef enum save_types {
- restore_old_value, /*tex a value should be restored later */
- restore_zero, /*tex an undefined entry should be restored */
- insert_tokens,
- restore_lua,
- level_boundary, /*tex the beginning of a group */
+ restore_old_value_save_type, /*tex a value should be restored later */
+ restore_zero_save_type, /*tex an undefined entry should be restored */
+ insert_tokens_save_type,
+ restore_lua_save_type,
+ level_boundary_save_type, /*tex the beginning of a group */
+ /* */
+ line_number_save_type,
+ /* */
+ insert_index_save_type,
/* */
- saved_line_number,
+ discretionary_count_save_type,
/* */
- saved_insert_index,
+ text_direction_save_type,
/* */
- saved_discretionary_count,
+ equation_number_location_save_type,
/* */
- saved_text_direction,
+ choices_count_save_type,
/* */
- saved_equation_number_location,
+ fraction_variant_save_type,
+ fraction_auto_style_save_type,
+ fraction_user_style_save_type,
/* */
- saved_choices_count,
+ radical_degree_done_save_type, /* make this better: just types */
+ radical_style_save_type,
/* */
- saved_fraction_variant,
- saved_fraction_auto_style,
- saved_fraction_user_style,
- saved_operator_variant,
+ operator_variant_save_type,
/* */
- saved_attribute_list,
+ attribute_list_save_type,
/* */
- saved_math_pointer,
- saved_math_class,
+ math_pointer_save_type,
+ math_class_save_type,
/* */
- saved_box_type,
- saved_box_context,
- saved_box_spec,
- saved_box_direction,
- saved_box_attr_list,
- saved_box_pack,
- saved_box_orientation,
- saved_box_anchor,
- saved_box_geometry,
- saved_box_xoffset,
- saved_box_yoffset,
- saved_box_xmove,
- saved_box_ymove,
- saved_box_reverse,
- saved_box_discard,
- saved_box_noskips,
- saved_box_callback,
- saved_box_container,
- saved_box_shift,
- saved_box_source,
- saved_box_target,
- saved_box_axis,
- saved_box_class,
- saved_box_state,
- saved_box_retain,
+ box_type_save_type,
+ box_context_save_type,
+ box_spec_save_type,
+ box_direction_save_type,
+ box_attr_list_save_type,
+ box_pack_save_type,
+ box_orientation_save_type,
+ box_anchor_save_type,
+ box_geometry_save_type,
+ box_xoffset_save_type,
+ box_yoffset_save_type,
+ box_xmove_save_type,
+ box_ymove_save_type,
+ box_reverse_save_type,
+ box_discard_save_type,
+ box_noskips_save_type,
+ box_callback_save_type,
+ box_container_save_type,
+ box_shift_save_type,
+ box_source_save_type,
+ box_target_save_type,
+ box_axis_save_type,
+ box_class_save_type,
+ box_state_save_type,
+ box_retain_save_type,
/* */
- saved_local_box_location,
- saved_local_box_index,
- saved_local_box_options,
+ local_box_location_save_type,
+ local_box_index_save_type,
+ local_box_options_save_type,
/* */
- saved_adjust_location,
- saved_adjust_options,
- saved_adjust_index,
- saved_adjust_attr_list,
- saved_adjust_depth_before,
- saved_adjust_depth_after,
+ adjust_location_save_type,
+ adjust_options_save_type,
+ adjust_index_save_type,
+ adjust_attr_list_save_type,
+ adjust_depth_before_save_type,
+ adjust_depth_after_save_type,
} save_types;
/*tex Nota bena: |equiv_value| is the same as |equiv| but sometimes we use that name instead. */
@@ -966,12 +965,15 @@ typedef enum tex_group_codes {
no_align_group, /*tex code for |\noalign| */
output_group, /*tex code for output routine */
math_group, /*tex code for, e.g., |\char'136| */
+ math_stack_group,
+ math_component_group,
discretionary_group, /*tex code for |\discretionary|' */
insert_group, /*tex code for |\insert| */
vadjust_group, /*tex code for |\vadjust| */
vcenter_group, /*tex code for |\vcenter| */
math_fraction_group, /*tex code for |\over| and friends */
math_operator_group,
+ math_radical_group,
math_choice_group, /*tex code for |\mathchoice| */
also_simple_group, /*tex code for |\begingroup|\unknown|\egroup| */
semi_simple_group, /*tex code for |\begingroup|\unknown|\endgroup| */
@@ -1265,7 +1267,6 @@ extern void tex_forced_word_define (int g, halfword p, singleword flag, halfword
# define math_skip_par glue_parameter(math_skip_code)
# define math_skip_mode_par count_parameter(math_skip_mode_code)
# define math_double_script_mode_par count_parameter(math_double_script_mode_code)
-/*define math_control_mode_par count_parameter(math_control_mode_code) */
# define math_font_control_par count_parameter(math_font_control_code)
# define math_display_mode_par count_parameter(math_display_mode_code)
# define math_dict_group_par count_parameter(math_dict_group_code)
@@ -1364,18 +1365,20 @@ extern void tex_forced_word_define (int g, halfword p, singleword flag, halfword
# define end_line_char_inactive ((end_line_char_par < 0) || (end_line_char_par > 127))
-# define delimiter_factor_par count_parameter(delimiter_factor_code)
-/*define post_binary_penalty_par count_parameter(post_binary_penalty_code) */
+/*tex
+ We keep these as reference but they are no longer equivalent to regular \TEX\ because we have
+ class based penalties instead.
+*/
+
+/*define post_binary_penalty_par count_parameter(post_binary_penalty_code) */
/*define post_relation_penalty_par count_parameter(post_relation_penalty_code) */
-/*define pre_binary_penalty_par count_parameter(pre_binary_penalty_code) */
-/*define pre_relation_penalty_par count_parameter(pre_relation_penalty_code) */
+/*define pre_binary_penalty_par count_parameter(pre_binary_penalty_code) */
+/*define pre_relation_penalty_par count_parameter(pre_relation_penalty_code) */
+
+# define delimiter_factor_par count_parameter(delimiter_factor_code)
# define math_penalties_mode_par count_parameter(math_penalties_mode_code)
# define math_check_fences_par count_parameter(math_check_fences_mode_code)
-/*define math_delimiters_mode_par count_parameter(math_delimiters_mode_code) */
-/*define math_fences_mode_par count_parameter(math_fences_mode_code) */
-/*define math_rule_thickness_mode_par count_parameter(math_rule_thickness_mode_code) */
# define math_slack_mode_par count_parameter(math_slack_mode_code)
-/*define math_flatten_mode_par count_parameter(math_flatten_mode_code) */
# define null_delimiter_space_par dimen_parameter(null_delimiter_space_code)
# define disable_spaces_par count_parameter(disable_spaces_code)
# define glyph_options_par count_parameter(glyph_options_code)
@@ -1388,8 +1391,6 @@ extern void tex_forced_word_define (int g, halfword p, singleword flag, halfword
# define glyph_x_offset_par dimen_parameter(glyph_x_offset_code)
# define glyph_y_offset_par dimen_parameter(glyph_y_offset_code)
# define math_scripts_mode_par count_parameter(math_scripts_mode_code)
-/*define math_script_box_mode_par count_parameter(math_script_box_mode_code) */
-/*define math_script_char_mode_par count_parameter(math_script_char_mode_code) */
# define math_limits_mode_par count_parameter(math_limits_mode_code)
# define math_nolimits_mode_par count_parameter(math_nolimits_mode_code)
# define math_rules_mode_par count_parameter(math_rules_mode_code)
@@ -1457,19 +1458,6 @@ typedef enum shaping_penalties_mode_bits {
# define tab_size_par dimen_parameter(tab_size_code)
-/*define prev_graf_par cur_list.prev_graf */
-/*define prev_depth_par cur_list.prev_depth */
-/*define space_factor_par cur_list.space_factor */
-
-/*define tail_par cur_list.tail */
-/*define head_par cur_list.head */
-/*define mode_par cur_list.mode */
-/*define dirs_par cur_list.dirs */
-
-/*define incompleat_noad_par cur_list.incompleat_noad */
-/*define mode_line_par cur_list.mode_line */
-/*define delim_par cur_list.delim */
-
# define par_shape_par specification_parameter(par_shape_code)
# define inter_line_penalties_par specification_parameter(inter_line_penalties_code)
# define club_penalties_par specification_parameter(club_penalties_code)
@@ -1479,11 +1467,17 @@ typedef enum shaping_penalties_mode_bits {
# define math_forward_penalties_par specification_parameter(math_forward_penalties_code)
# define math_backward_penalties_par specification_parameter(math_backward_penalties_code)
+/*tex
+ We keep these three as reference but because they are backend related they are basically
+ no-ops and ignored.
+*/
+
/*define h_offset_par dimen_parameter(h_offset_code) */
/*define v_offset_par dimen_parameter(v_offset_code) */
-# define px_dimen_par dimen_parameter(px_dimen_code)
/*define mag_par count_parameter(mag_code) */
+# define px_dimen_par dimen_parameter(px_dimen_code)
+
# define max_dead_cycles_par count_parameter(max_dead_cycles_code)
# define output_box_par count_parameter(output_box_code)
# define holding_inserts_par count_parameter(holding_inserts_code)
@@ -1596,7 +1590,6 @@ typedef enum hyphenation_mode_bits {
/*define glue_data_par count_parameter(glue_data_code) */
# define cur_lang_par count_parameter(language_code)
-/*define cur_font_par eq_value(current_font_sequence) */
# define cur_font_par count_parameter(font_code)
typedef enum normalize_line_mode_bits {