summaryrefslogtreecommitdiff
path: root/source/luametatex/source/tex/texcommands.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/luametatex/source/tex/texcommands.c')
-rw-r--r--source/luametatex/source/tex/texcommands.c1318
1 files changed, 1318 insertions, 0 deletions
diff --git a/source/luametatex/source/tex/texcommands.c b/source/luametatex/source/tex/texcommands.c
new file mode 100644
index 000000000..3ac1a7b23
--- /dev/null
+++ b/source/luametatex/source/tex/texcommands.c
@@ -0,0 +1,1318 @@
+/*
+ See license.txt in the root of this project.
+*/
+
+# include "luametatex.h"
+
+/*tex
+
+ We start with a couple of \ETEX\ related comments:
+
+ The |\showtokens| command displays a token list. The |\showifs| command displays all currently
+ active conditionals.
+
+ The |\unexpanded| primitive prevents expansion of tokens much as the result from |\the| applied"-"
+ to a token variable. The |\detokenize| primitive converts a token list into a list of character
+ tokens much as if the token list were written to a file. We use the fact that the command
+ modifiers for |\unexpanded| and |\detokenize| are odd whereas those for |\the| and |\showthe|
+ are even.
+
+ The |protected| feature of \ETEX\ defines the |\protected| prefix command for macro definitions.
+ Such macros are protected against expansions when lists of expanded tokens are built, e.g., for
+ |\edef| or during |\write|.
+
+ The |\pagediscards| and |\splitdiscards| commands share the command code |un_vbox| with |\unvbox|
+ and |\unvcopy|, they are distinguished by their |chr_code| values |last_box_code| and
+ |vsplit_code|. These |chr_code| values are larger than |box_code| and |copy_code|.
+
+ The |\interlinepenalties|, |\clubpenalties|, |\widowpenalties|, and |\displaywidowpenalties|
+ commands allow to define arrays of penalty values to be used instead of the corresponding single
+ values.
+
+*/
+
+/*tex
+
+ The symbolic names for glue parameters are put into \TEX's hash table by using the routine called
+ |primitive|, defined below. Let us enter them now, so that we don't have to list all those
+ parameter names anywhere else.
+
+ Many of \TEX's primitives need no |equiv|, since they are identifiable by their |eq_type| alone.
+ These primitives are loaded into the hash table.
+
+ The processing of |\input| involves the |start_input| subroutine, which will be declared later;
+ the processing of |\endinput| is trivial.
+
+ The hash table is initialized with |\count|, |\attribute|, |\dimen|, |\skip|, and |\muskip| all
+ having |register| as their command code; they are distinguished by the |chr_code|, which is
+ either |int_val|, |attr_val|, |dimen_val|, |glue_val|, or |mu_val|.
+
+ Because in \LUATEX\ and \LUAMETATEX\ we have more primitives, and use a lookup table, we combine
+ commands, for instance the |\aftergroup| and |\afterassignment| are just simple runners and
+ instead of the old two single cases, we now have one case that handles the four variants. This
+ keeps similar code close and also saves lookups. So, we have a few |cmd| less than normally in
+ a \TEX\ engine, but also a few more. Some have been renamed because they do more now (already
+ in \ETEX).
+
+*/
+
+static void tex_aux_copy_deep_frozen_from_primitive(halfword code, const char *s)
+{
+ halfword p = tex_prim_lookup(tex_located_string(s));
+ cs_text(code) = cs_text(p);
+ copy_eqtb_entry(code, p);
+}
+
+void tex_initialize_commands(void)
+{
+
+ if (lmt_main_state.run_state == initializing_state) {
+
+ lmt_hash_state.no_new_cs = 0;
+ lmt_fileio_state.io_first = 0;
+
+ /*tex glue */
+
+ tex_primitive(tex_command, "lineskip", internal_glue_cmd, line_skip_code, internal_glue_base);
+ tex_primitive(tex_command, "baselineskip", internal_glue_cmd, baseline_skip_code, internal_glue_base);
+ tex_primitive(tex_command, "parskip", internal_glue_cmd, par_skip_code, internal_glue_base);
+ tex_primitive(tex_command, "abovedisplayskip", internal_glue_cmd, above_display_skip_code, internal_glue_base);
+ tex_primitive(tex_command, "belowdisplayskip", internal_glue_cmd, below_display_skip_code, internal_glue_base);
+ tex_primitive(tex_command, "abovedisplayshortskip", internal_glue_cmd, above_display_short_skip_code, internal_glue_base);
+ tex_primitive(tex_command, "belowdisplayshortskip", internal_glue_cmd, below_display_short_skip_code, internal_glue_base);
+ tex_primitive(tex_command, "leftskip", internal_glue_cmd, left_skip_code, internal_glue_base);
+ tex_primitive(tex_command, "rightskip", internal_glue_cmd, right_skip_code, internal_glue_base);
+ tex_primitive(tex_command, "topskip", internal_glue_cmd, top_skip_code, internal_glue_base);
+ tex_primitive(tex_command, "splittopskip", internal_glue_cmd, split_top_skip_code, internal_glue_base);
+ tex_primitive(tex_command, "tabskip", internal_glue_cmd, tab_skip_code, internal_glue_base);
+ tex_primitive(tex_command, "spaceskip", internal_glue_cmd, space_skip_code, internal_glue_base);
+ tex_primitive(tex_command, "xspaceskip", internal_glue_cmd, xspace_skip_code, internal_glue_base);
+ tex_primitive(tex_command, "parfillleftskip", internal_glue_cmd, par_fill_left_skip_code, internal_glue_base);
+ tex_primitive(tex_command, "parfillskip", internal_glue_cmd, par_fill_right_skip_code, internal_glue_base);
+ tex_primitive(tex_command, "parinitleftskip", internal_glue_cmd, par_init_left_skip_code, internal_glue_base);
+ tex_primitive(tex_command, "parinitrightskip", internal_glue_cmd, par_init_right_skip_code, internal_glue_base);
+ tex_primitive(luatex_command, "mathsurroundskip", internal_glue_cmd, math_skip_code, internal_glue_base);
+ tex_primitive(luatex_command, "maththreshold", internal_glue_cmd, math_threshold_code, internal_glue_base);
+
+ /*tex math glue */
+
+ tex_primitive(luatex_command, "pettymuskip", internal_mu_glue_cmd, petty_mu_skip_code, internal_mu_glue_base);
+ tex_primitive(luatex_command, "tinymuskip", internal_mu_glue_cmd, tiny_mu_skip_code, internal_mu_glue_base);
+ tex_primitive(tex_command, "thinmuskip", internal_mu_glue_cmd, thin_mu_skip_code, internal_mu_glue_base);
+ tex_primitive(tex_command, "medmuskip", internal_mu_glue_cmd, med_mu_skip_code, internal_mu_glue_base);
+ tex_primitive(tex_command, "thickmuskip", internal_mu_glue_cmd, thick_mu_skip_code, internal_mu_glue_base);
+
+ /*tex tokens */
+
+ tex_primitive(tex_command, "output", internal_toks_cmd, output_routine_code, internal_toks_base);
+ tex_primitive(tex_command, "everypar", internal_toks_cmd, every_par_code, internal_toks_base);
+ tex_primitive(tex_command, "everymath", internal_toks_cmd, every_math_code, internal_toks_base);
+ tex_primitive(tex_command, "everydisplay", internal_toks_cmd, every_display_code, internal_toks_base);
+ tex_primitive(tex_command, "everyhbox", internal_toks_cmd, every_hbox_code, internal_toks_base);
+ tex_primitive(tex_command, "everyvbox", internal_toks_cmd, every_vbox_code, internal_toks_base);
+ tex_primitive(luatex_command, "everymathatom", internal_toks_cmd, every_math_atom_code, internal_toks_base);
+ tex_primitive(tex_command, "everyjob", internal_toks_cmd, every_job_code, internal_toks_base);
+ tex_primitive(tex_command, "everycr", internal_toks_cmd, every_cr_code, internal_toks_base);
+ tex_primitive(luatex_command, "everytab", internal_toks_cmd, every_tab_code, internal_toks_base);
+ /* tex_primitive(luatex_command, "endofpar", internal_toks_cmd, end_of_par_code, internal_toks_base); */
+ tex_primitive(tex_command, "errhelp", internal_toks_cmd, error_help_code, internal_toks_base);
+ tex_primitive(etex_command, "everyeof", internal_toks_cmd, every_eof_code, internal_toks_base);
+ tex_primitive(luatex_command, "everybeforepar", internal_toks_cmd, every_before_par_code, internal_toks_base);
+ tex_primitive(no_command, "endofgroup", internal_toks_cmd, end_of_group_code, internal_toks_base);
+
+ /*tex counters (we could omit the int_base here as effectively it is subtracted) */
+
+ tex_primitive(tex_command, "adjdemerits", internal_int_cmd, adj_demerits_code, internal_int_base);
+ tex_primitive(tex_command, "binoppenalty", internal_int_cmd, post_binary_penalty_code, internal_int_base); /*tex For old times sake. */
+ tex_primitive(tex_command, "brokenpenalty", internal_int_cmd, broken_penalty_code, internal_int_base);
+ tex_primitive(tex_command, "clubpenalty", internal_int_cmd, club_penalty_code, internal_int_base);
+ tex_primitive(tex_command, "day", internal_int_cmd, day_code, internal_int_base);
+ tex_primitive(tex_command, "defaulthyphenchar", internal_int_cmd, default_hyphen_char_code, internal_int_base);
+ tex_primitive(tex_command, "defaultskewchar", internal_int_cmd, default_skew_char_code, internal_int_base);
+ tex_primitive(tex_command, "delimiterfactor", internal_int_cmd, delimiter_factor_code, internal_int_base);
+ tex_primitive(tex_command, "displaywidowpenalty", internal_int_cmd, display_widow_penalty_code, internal_int_base);
+ tex_primitive(tex_command, "doublehyphendemerits", internal_int_cmd, double_hyphen_demerits_code, internal_int_base);
+ tex_primitive(tex_command, "endlinechar", internal_int_cmd, end_line_char_code, internal_int_base);
+ tex_primitive(tex_command, "errorcontextlines", internal_int_cmd, error_context_lines_code, internal_int_base);
+ tex_primitive(tex_command, "escapechar", internal_int_cmd, escape_char_code, internal_int_base);
+ tex_primitive(tex_command, "exhyphenchar", internal_int_cmd, ex_hyphen_char_code, internal_int_base);
+ tex_primitive(tex_command, "exhyphenpenalty", internal_int_cmd, ex_hyphen_penalty_code, internal_int_base);
+ tex_primitive(tex_command, "fam", internal_int_cmd, family_code, internal_int_base);
+ tex_primitive(tex_command, "finalhyphendemerits", internal_int_cmd, final_hyphen_demerits_code, internal_int_base);
+ tex_primitive(tex_command, "floatingpenalty", internal_int_cmd, floating_penalty_code, internal_int_base);
+ tex_primitive(tex_command, "globaldefs", internal_int_cmd, global_defs_code, internal_int_base);
+ tex_primitive(tex_command, "hangafter", internal_int_cmd, hang_after_code, internal_int_base);
+ tex_primitive(tex_command, "hbadness", internal_int_cmd, hbadness_code, internal_int_base);
+ tex_primitive(tex_command, "holdinginserts", internal_int_cmd, holding_inserts_code, internal_int_base);
+ tex_primitive(luatex_command, "holdingmigrations", internal_int_cmd, holding_migrations_code, internal_int_base);
+ tex_primitive(tex_command, "hyphenpenalty", internal_int_cmd, hyphen_penalty_code, internal_int_base);
+ tex_primitive(tex_command, "interlinepenalty", internal_int_cmd, inter_line_penalty_code, internal_int_base);
+ tex_primitive(tex_command, "language", internal_int_cmd, language_code, internal_int_base);
+ tex_primitive(tex_command, "setlanguage", internal_int_cmd, language_code, internal_int_base); /* compatibility */
+ tex_primitive(luatex_command, "setfontid", internal_int_cmd, font_code, internal_int_base);
+ tex_primitive(luatex_command, "hyphenationmode", internal_int_cmd, hyphenation_mode_code, internal_int_base);
+ tex_primitive(tex_command, "lefthyphenmin", internal_int_cmd, left_hyphen_min_code, internal_int_base);
+ tex_primitive(tex_command, "linepenalty", internal_int_cmd, line_penalty_code, internal_int_base);
+ tex_primitive(tex_command, "looseness", internal_int_cmd, looseness_code, internal_int_base);
+ /* tex_primitive(tex_command, "mag", internal_int_cmd, mag_code, internal_int_base); */ /* backend */
+ tex_primitive(tex_command, "maxdeadcycles", internal_int_cmd, max_dead_cycles_code, internal_int_base);
+ tex_primitive(tex_command, "month", internal_int_cmd, month_code, internal_int_base);
+ tex_primitive(tex_command, "newlinechar", internal_int_cmd, new_line_char_code, internal_int_base);
+ tex_primitive(tex_command, "outputpenalty", internal_int_cmd, output_penalty_code, internal_int_base);
+ tex_primitive(tex_command, "pausing", internal_int_cmd, pausing_code, internal_int_base);
+ tex_primitive(tex_command, "postdisplaypenalty", internal_int_cmd, post_display_penalty_code, internal_int_base);
+ tex_primitive(tex_command, "predisplaypenalty", internal_int_cmd, pre_display_penalty_code, internal_int_base);
+ tex_primitive(luatex_command, "postinlinepenalty", internal_int_cmd, post_inline_penalty_code, internal_int_base);
+ tex_primitive(luatex_command, "preinlinepenalty", internal_int_cmd, pre_inline_penalty_code, internal_int_base);
+ tex_primitive(tex_command, "pretolerance", internal_int_cmd, pre_tolerance_code, internal_int_base);
+ tex_primitive(tex_command, "relpenalty", internal_int_cmd, post_relation_penalty_code, internal_int_base); /*tex For old times sake. */
+ tex_primitive(tex_command, "righthyphenmin", internal_int_cmd, right_hyphen_min_code, internal_int_base);
+ tex_primitive(tex_command, "showboxbreadth", internal_int_cmd, show_box_breadth_code, internal_int_base);
+ tex_primitive(tex_command, "showboxdepth", internal_int_cmd, show_box_depth_code, internal_int_base);
+ tex_primitive(tex_command, "shownodedetails", internal_int_cmd, show_node_details_code, internal_int_base);
+ tex_primitive(tex_command, "time", internal_int_cmd, time_code, internal_int_base);
+ tex_primitive(tex_command, "tolerance", internal_int_cmd, tolerance_code, internal_int_base);
+ tex_primitive(tex_command, "tracingonline", internal_int_cmd, tracing_online_code, internal_int_base);
+ tex_primitive(tex_command, "tracingmacros", internal_int_cmd, tracing_macros_code, internal_int_base);
+ tex_primitive(tex_command, "tracingstats", internal_int_cmd, tracing_stats_code, internal_int_base); /* obsolete */
+ tex_primitive(tex_command, "tracingparagraphs", internal_int_cmd, tracing_paragraphs_code, internal_int_base);
+ tex_primitive(tex_command, "tracingpages", internal_int_cmd, tracing_pages_code, internal_int_base);
+ tex_primitive(tex_command, "tracingoutput", internal_int_cmd, tracing_output_code, internal_int_base);
+ tex_primitive(tex_command, "tracinglostchars", internal_int_cmd, tracing_lost_chars_code, internal_int_base);
+ tex_primitive(tex_command, "tracingcommands", internal_int_cmd, tracing_commands_code, internal_int_base);
+ tex_primitive(tex_command, "tracingrestores", internal_int_cmd, tracing_restores_code, internal_int_base);
+ tex_primitive(luatex_command, "tracingfonts", internal_int_cmd, tracing_fonts_code, internal_int_base);
+ tex_primitive(etex_command, "tracingassigns", internal_int_cmd, tracing_assigns_code, internal_int_base);
+ tex_primitive(etex_command, "tracinggroups", internal_int_cmd, tracing_groups_code, internal_int_base);
+ tex_primitive(etex_command, "tracingifs", internal_int_cmd, tracing_ifs_code, internal_int_base);
+ tex_primitive(luatex_command, "tracingmath", internal_int_cmd, tracing_math_code, internal_int_base);
+ tex_primitive(luatex_command, "tracinglevels", internal_int_cmd, tracing_levels_code, internal_int_base);
+ tex_primitive(etex_command, "tracingnesting", internal_int_cmd, tracing_nesting_code, internal_int_base);
+ tex_primitive(luatex_command, "tracingalignments", internal_int_cmd, tracing_alignments_code, internal_int_base);
+ tex_primitive(luatex_command, "tracinginserts", internal_int_cmd, tracing_inserts_code, internal_int_base);
+ tex_primitive(luatex_command, "tracingmarks", internal_int_cmd, tracing_marks_code, internal_int_base);
+ tex_primitive(luatex_command, "tracingadjusts", internal_int_cmd, tracing_adjusts_code, internal_int_base);
+ tex_primitive(luatex_command, "tracinghyphenation", internal_int_cmd, tracing_hyphenation_code, internal_int_base);
+ tex_primitive(luatex_command, "tracingexpressions", internal_int_cmd, tracing_expressions_code, internal_int_base);
+ tex_primitive(luatex_command, "tracingnodes", internal_int_cmd, tracing_nodes_code, internal_int_base);
+ tex_primitive(luatex_command, "tracingfullboxes", internal_int_cmd, tracing_full_boxes_code, internal_int_base);
+ tex_primitive(luatex_command, "tracingpenalties", internal_int_cmd, tracing_penalties_code, internal_int_base);
+ tex_primitive(tex_command, "uchyph", internal_int_cmd, uc_hyph_code, internal_int_base); /* obsolete */
+ tex_primitive(tex_command, "vbadness", internal_int_cmd, vbadness_code, internal_int_base);
+ tex_primitive(tex_command, "widowpenalty", internal_int_cmd, widow_penalty_code, internal_int_base);
+ tex_primitive(tex_command, "year", internal_int_cmd, year_code, internal_int_base);
+ tex_primitive(no_command, "internalparstate", internal_int_cmd, internal_par_state_code, internal_int_base);
+ tex_primitive(no_command, "internaldirstate", internal_int_cmd, internal_dir_state_code, internal_int_base);
+ tex_primitive(no_command, "internalmathstyle", internal_int_cmd, internal_math_style_code, internal_int_base);
+ tex_primitive(no_command, "internalmathscale", internal_int_cmd, internal_math_scale_code, internal_int_base);
+ tex_primitive(etex_command, "predisplaydirection", internal_int_cmd, pre_display_direction_code, internal_int_base);
+ tex_primitive(etex_command, "lastlinefit", internal_int_cmd, last_line_fit_code, internal_int_base);
+ tex_primitive(etex_command, "savingvdiscards", internal_int_cmd, saving_vdiscards_code, internal_int_base);
+ tex_primitive(etex_command, "savinghyphcodes", internal_int_cmd, saving_hyph_codes_code, internal_int_base);
+ tex_primitive(luatex_command, "adjustspacing", internal_int_cmd, adjust_spacing_code, internal_int_base);
+ tex_primitive(luatex_command, "adjustspacingstep", internal_int_cmd, adjust_spacing_step_code, internal_int_base);
+ tex_primitive(luatex_command, "adjustspacingstretch", internal_int_cmd, adjust_spacing_stretch_code, internal_int_base);
+ tex_primitive(luatex_command, "adjustspacingshrink", internal_int_cmd, adjust_spacing_shrink_code, internal_int_base);
+ tex_primitive(luatex_command, "automatichyphenpenalty", internal_int_cmd, automatic_hyphen_penalty_code, internal_int_base);
+ tex_primitive(luatex_command, "catcodetable", internal_int_cmd, cat_code_table_code, internal_int_base);
+ tex_primitive(luatex_command, "exceptionpenalty", internal_int_cmd, exception_penalty_code, internal_int_base);
+ tex_primitive(luatex_command, "explicithyphenpenalty", internal_int_cmd, explicit_hyphen_penalty_code, internal_int_base);
+ tex_primitive(luatex_command, "firstvalidlanguage", internal_int_cmd, first_valid_language_code, internal_int_base);
+ tex_primitive(luatex_command, "automigrationmode", internal_int_cmd, auto_migration_mode_code, internal_int_base);
+ tex_primitive(luatex_command, "normalizelinemode", internal_int_cmd, normalize_line_mode_code, internal_int_base);
+ tex_primitive(luatex_command, "normalizeparmode", internal_int_cmd, normalize_par_mode_code, internal_int_base);
+ tex_primitive(luatex_command, "glyphdatafield", internal_int_cmd, glyph_data_code, internal_int_base);
+ tex_primitive(luatex_command, "glyphstatefield", internal_int_cmd, glyph_state_code, internal_int_base);
+ tex_primitive(luatex_command, "glyphscriptfield", internal_int_cmd, glyph_script_code, internal_int_base);
+ /* tex_primitive(luatex_command, "gluedatafield", internal_int_cmd, glue_data_code, internal_int_base); */
+ tex_primitive(luatex_command, "localbrokenpenalty", internal_int_cmd, local_broken_penalty_code, internal_int_base);
+ tex_primitive(luatex_command, "localinterlinepenalty", internal_int_cmd, local_interline_penalty_code, internal_int_base);
+ tex_primitive(luatex_command, "luacopyinputnodes", internal_int_cmd, copy_lua_input_nodes_code, internal_int_base);
+ tex_primitive(luatex_command, "mathcheckfencesmode", internal_int_cmd, math_check_fences_mode_code, internal_int_base);
+ /* tex_primitive(luatex_command, "mathdelimitersmode", internal_int_cmd, math_delimiters_mode_code, internal_int_base); */
+ /* tex_primitive(luatex_command, "mathfencesmode", internal_int_cmd, math_fences_mode_code, internal_int_base); */
+ tex_primitive(luatex_command, "mathslackmode", internal_int_cmd, math_slack_mode_code, internal_int_base);
+ /* tex_primitive(luatex_command, "mathflattenmode", internal_int_cmd, math_flatten_mode_code, internal_int_base); */
+ tex_primitive(luatex_command, "mathpenaltiesmode", internal_int_cmd, math_penalties_mode_code, internal_int_base);
+ /* tex_primitive(luatex_command, "mathrulethicknessmode", internal_int_cmd, math_rule_thickness_mode_code, internal_int_base); */
+ tex_primitive(luatex_command, "mathscriptsmode", internal_int_cmd, math_scripts_mode_code, internal_int_base);
+ /* tex_primitive(luatex_command, "mathscriptboxmode", internal_int_cmd, math_script_box_mode_code, internal_int_base); */
+ /* tex_primitive(luatex_command, "mathscriptcharmode", internal_int_cmd, math_script_char_mode_code, internal_int_base); */
+ tex_primitive(luatex_command, "mathsurroundmode", internal_int_cmd, math_skip_mode_code, internal_int_base);
+ tex_primitive(luatex_command, "mathdoublescriptmode", internal_int_cmd, math_double_script_mode_code, internal_int_base);
+ /* tex_primitive(luatex_command, "mathcontrolmode", internal_int_cmd, math_control_mode_code, internal_int_base); */
+ tex_primitive(luatex_command, "mathfontcontrol", internal_int_cmd, math_font_control_code, internal_int_base);
+ tex_primitive(luatex_command, "mathdisplaymode", internal_int_cmd, math_display_mode_code, internal_int_base);
+ tex_primitive(luatex_command, "mathdictgroup", internal_int_cmd, math_dict_group_code, internal_int_base);
+ tex_primitive(luatex_command, "mathdictproperties", internal_int_cmd, math_dict_properties_code, internal_int_base);
+ tex_primitive(luatex_command, "nospaces", internal_int_cmd, disable_spaces_code, internal_int_base);
+ tex_primitive(luatex_command, "glyphoptions", internal_int_cmd, glyph_options_code, internal_int_base);
+ tex_primitive(luatex_command, "glyphscale", internal_int_cmd, glyph_scale_code, internal_int_base);
+ tex_primitive(luatex_command, "glyphtextscale", internal_int_cmd, glyph_text_scale_code, internal_int_base);
+ tex_primitive(luatex_command, "glyphscriptscale", internal_int_cmd, glyph_script_scale_code, internal_int_base);
+ tex_primitive(luatex_command, "glyphscriptscriptscale", internal_int_cmd, glyph_scriptscript_scale_code, internal_int_base);
+ tex_primitive(luatex_command, "glyphxscale", internal_int_cmd, glyph_x_scale_code, internal_int_base);
+ tex_primitive(luatex_command, "glyphyscale", internal_int_cmd, glyph_y_scale_code, internal_int_base);
+ tex_primitive(luatex_command, "outputbox", internal_int_cmd, output_box_code, internal_int_base);
+ tex_primitive(luatex_command, "prebinoppenalty", internal_int_cmd, pre_binary_penalty_code, internal_int_base); /*tex For old times sake. */
+ tex_primitive(luatex_command, "predisplaygapfactor", internal_int_cmd, math_pre_display_gap_factor_code, internal_int_base);
+ tex_primitive(luatex_command, "prerelpenalty", internal_int_cmd, pre_relation_penalty_code, internal_int_base); /*tex For old times sake. */
+ tex_primitive(luatex_command, "protrudechars", internal_int_cmd, protrude_chars_code, internal_int_base);
+ tex_primitive(luatex_command, "matheqnogapstep", internal_int_cmd, math_eqno_gap_step_code, internal_int_base);
+ tex_primitive(luatex_command, "mathdisplayskipmode", internal_int_cmd, math_display_skip_mode_code, internal_int_base);
+ tex_primitive(luatex_command, "mathnolimitsmode", internal_int_cmd, math_nolimits_mode_code, internal_int_base);
+ tex_primitive(luatex_command, "mathlimitsmode", internal_int_cmd, math_limits_mode_code, internal_int_base);
+ tex_primitive(luatex_command, "mathrulesmode", internal_int_cmd, math_rules_mode_code, internal_int_base);
+ tex_primitive(luatex_command, "mathrulesfam", internal_int_cmd, math_rules_fam_code, internal_int_base);
+ tex_primitive(luatex_command, "mathspacingmode", internal_int_cmd, math_spacing_mode_code, internal_int_base); /*tex Inject zero spaces, for tracing */
+ tex_primitive(luatex_command, "mathgroupingmode", internal_int_cmd, math_grouping_mode_code, internal_int_base);
+ tex_primitive(luatex_command, "mathgluemode", internal_int_cmd, math_glue_mode_code, internal_int_base);
+ tex_primitive(luatex_command, "mathbeginclass", internal_int_cmd, math_begin_class_code, internal_int_base);
+ tex_primitive(luatex_command, "mathendclass", internal_int_cmd, math_end_class_code, internal_int_base);
+ tex_primitive(luatex_command, "mathleftclass", internal_int_cmd, math_left_class_code, internal_int_base);
+ tex_primitive(luatex_command, "mathrightclass", internal_int_cmd, math_right_class_code, internal_int_base);
+ tex_primitive(luatex_command, "supmarkmode", internal_int_cmd, sup_mark_mode_code, internal_int_base);
+ tex_primitive(luatex_command, "overloadmode", internal_int_cmd, overload_mode_code, internal_int_base);
+ tex_primitive(luatex_command, "autoparagraphmode", internal_int_cmd, auto_paragraph_mode_code, internal_int_base);
+ tex_primitive(luatex_command, "shapingpenaltiesmode", internal_int_cmd, shaping_penalties_mode_code, internal_int_base);
+ tex_primitive(luatex_command, "shapingpenalty", internal_int_cmd, shaping_penalty_code, internal_int_base);
+ tex_primitive(luatex_command, "orphanpenalty", internal_int_cmd, orphan_penalty_code, internal_int_base);
+ /* tex_primitive(luatex_command, "alignmentcellattr", internal_int_cmd, alignment_cell_attribute_code, internal_int_base); */ /* todo */
+ tex_primitive(luatex_command, "alignmentcellsource", internal_int_cmd, alignment_cell_source_code, internal_int_base);
+ tex_primitive(luatex_command, "alignmentwrapsource", internal_int_cmd, alignment_wrap_source_code, internal_int_base);
+ /* tex_primitive(luatex_command, "pageboundarypenalty", internal_int_cmd, page_boundary_penalty_code, internal_int_base); */
+ tex_primitive(luatex_command, "linebreakcriterium", internal_int_cmd, line_break_criterium_code, internal_int_base);
+
+ /*tex dimensions */
+
+ tex_primitive(tex_command, "boxmaxdepth", internal_dimen_cmd, box_max_depth_code, internal_dimen_base);
+ tex_primitive(tex_command, "delimitershortfall", internal_dimen_cmd, delimiter_shortfall_code, internal_dimen_base);
+ tex_primitive(tex_command, "displayindent", internal_dimen_cmd, display_indent_code, internal_dimen_base);
+ tex_primitive(tex_command, "displaywidth", internal_dimen_cmd, display_width_code, internal_dimen_base);
+ tex_primitive(tex_command, "emergencystretch", internal_dimen_cmd, emergency_stretch_code, internal_dimen_base);
+ tex_primitive(tex_command, "hangindent", internal_dimen_cmd, hang_indent_code, internal_dimen_base);
+ tex_primitive(tex_command, "hfuzz", internal_dimen_cmd, hfuzz_code, internal_dimen_base);
+ /* tex_primitive(tex_command, "hoffset", internal_dimen_cmd, h_offset_code, internal_dimen_base); */ /* backend */
+ tex_primitive(tex_command, "hsize", internal_dimen_cmd, hsize_code, internal_dimen_base);
+ tex_primitive(tex_command, "lineskiplimit", internal_dimen_cmd, line_skip_limit_code, internal_dimen_base);
+ tex_primitive(tex_command, "mathsurround", internal_dimen_cmd, math_surround_code, internal_dimen_base);
+ tex_primitive(tex_command, "maxdepth", internal_dimen_cmd, max_depth_code, internal_dimen_base);
+ tex_primitive(tex_command, "nulldelimiterspace", internal_dimen_cmd, null_delimiter_space_code, internal_dimen_base);
+ tex_primitive(tex_command, "overfullrule", internal_dimen_cmd, overfull_rule_code, internal_dimen_base);
+ tex_primitive(tex_command, "parindent", internal_dimen_cmd, par_indent_code, internal_dimen_base);
+ tex_primitive(tex_command, "predisplaysize", internal_dimen_cmd, pre_display_size_code, internal_dimen_base);
+ tex_primitive(tex_command, "scriptspace", internal_dimen_cmd, script_space_code, internal_dimen_base);
+ tex_primitive(tex_command, "splitmaxdepth", internal_dimen_cmd, split_max_depth_code, internal_dimen_base);
+ tex_primitive(tex_command, "vfuzz", internal_dimen_cmd, vfuzz_code, internal_dimen_base);
+ /* tex_primitive(tex_command, "voffset", internal_dimen_cmd, v_offset_code, internal_dimen_base); */ /* backend */
+ tex_primitive(tex_command, "vsize", internal_dimen_cmd, vsize_code, internal_dimen_base);
+ tex_primitive(luatex_command, "glyphxoffset", internal_dimen_cmd, glyph_x_offset_code, internal_dimen_base);
+ tex_primitive(luatex_command, "glyphyoffset", internal_dimen_cmd, glyph_y_offset_code, internal_dimen_base);
+ tex_primitive(luatex_command, "pxdimen", internal_dimen_cmd, px_dimen_code, internal_dimen_base);
+ tex_primitive(luatex_command, "tabsize", internal_dimen_cmd, tab_size_code, internal_dimen_base);
+ tex_primitive(luatex_command, "pageextragoal", internal_dimen_cmd, page_extra_goal_code, internal_dimen_base);
+
+ /*tex Probably never used with \UNICODE\ omnipresent now: */
+
+ tex_primitive(tex_command, "accent", accent_cmd, normal_code, 0);
+
+ /*tex These three can go in one cmd: */
+
+ tex_primitive(tex_command, "advance", arithmic_cmd, advance_code, 0);
+ tex_primitive(tex_command, "divide", arithmic_cmd, divide_code, 0);
+ tex_primitive(tex_command, "multiply", arithmic_cmd, multiply_code, 0);
+
+ /*tex We combined the after thingies into one category:*/
+
+ tex_primitive(tex_command, "afterassignment", after_something_cmd, after_assignment_code, 0);
+ tex_primitive(luatex_command, "afterassigned", after_something_cmd, after_assigned_code, 0);
+ tex_primitive(tex_command, "aftergroup", after_something_cmd, after_group_code, 0);
+ tex_primitive(luatex_command, "aftergrouped", after_something_cmd, after_grouped_code, 0);
+ tex_primitive(luatex_command, "atendofgroup", after_something_cmd, at_end_of_group_code, 0);
+ tex_primitive(luatex_command, "atendofgrouped", after_something_cmd, at_end_of_grouped_code, 0);
+
+ tex_primitive(tex_command, "begingroup", begin_group_cmd, semi_simple_group_code, 0);
+ tex_primitive(luatex_command, "beginsimplegroup", begin_group_cmd, also_simple_group_code, 0);
+ tex_primitive(luatex_command, "beginmathgroup", begin_group_cmd, math_simple_group_code, 0);
+
+ tex_primitive(luatex_command, "noboundary", boundary_cmd, cancel_boundary, 0);
+ tex_primitive(luatex_command, "boundary", boundary_cmd, user_boundary, 0);
+ tex_primitive(luatex_command, "protrusionboundary", boundary_cmd, protrusion_boundary, 0);
+ tex_primitive(luatex_command, "wordboundary", boundary_cmd, word_boundary, 0);
+ tex_primitive(luatex_command, "pageboundary", boundary_cmd, page_boundary, 0);
+ /* tex_primitive(luatex_command, "parboundary", boundary_cmd, par_boundary, 0); */
+
+ tex_primitive(tex_command, "penalty", penalty_cmd, normal_code, 0);
+
+ tex_primitive(tex_command, "char", char_number_cmd, char_number_code, 0);
+ tex_primitive(luatex_command, "glyph", char_number_cmd, glyph_number_code, 0);
+
+ tex_primitive(luatex_command, "etoks", combine_toks_cmd, expanded_toks_code, 0);
+ tex_primitive(luatex_command, "toksapp", combine_toks_cmd, append_toks_code, 0);
+ tex_primitive(luatex_command, "etoksapp", combine_toks_cmd, append_expanded_toks_code, 0);
+ tex_primitive(luatex_command, "tokspre", combine_toks_cmd, prepend_toks_code, 0);
+ tex_primitive(luatex_command, "etokspre", combine_toks_cmd, prepend_expanded_toks_code, 0);
+ tex_primitive(luatex_command, "xtoks", combine_toks_cmd, global_expanded_toks_code, 0);
+ tex_primitive(luatex_command, "gtoksapp", combine_toks_cmd, global_append_toks_code, 0);
+ tex_primitive(luatex_command, "xtoksapp", combine_toks_cmd, global_append_expanded_toks_code, 0);
+ tex_primitive(luatex_command, "gtokspre", combine_toks_cmd, global_prepend_toks_code, 0);
+ tex_primitive(luatex_command, "xtokspre", combine_toks_cmd, global_prepend_expanded_toks_code, 0);
+
+ tex_primitive(tex_command, "csname", cs_name_cmd, cs_name_code, 0);
+ tex_primitive(luatex_command, "lastnamedcs", cs_name_cmd, last_named_cs_code, 0);
+ tex_primitive(luatex_command, "begincsname", cs_name_cmd, begin_cs_name_code, 0);
+ tex_primitive(luatex_command, "futurecsname", cs_name_cmd, future_cs_name_code, 0); /* Okay but rare applications (less tracing). */
+
+ tex_primitive(tex_command, "endcsname", end_cs_name_cmd, normal_code, 0);
+
+ /* set_font_id could use def_font_cmd */
+
+ tex_primitive(tex_command, "font", define_font_cmd, normal_code, 0);
+ /* tex_primitive(tex_command, "nullfont", set_font_cmd, null_font, 0); */ /* See later. */
+
+ tex_primitive(tex_command, "delimiter", delimiter_number_cmd, math_delimiter_code, 0);
+ tex_primitive(luatex_command, "Udelimiter", delimiter_number_cmd, math_udelimiter_code, 0);
+
+ /* tex_primitive(tex_command, "endgroup", end_group_cmd, normal_code, 0); */ /* See later. */
+
+ /*tex We don't combine these because they have different runners and mode handling. */
+
+ tex_primitive(tex_command, " ", explicit_space_cmd, normal_code, 0); /* These will get verbose equivalents: \explicitspace (and maybe a sfless variant too) */
+ tex_primitive(tex_command, "/", italic_correction_cmd, normal_code, 0); /* These will get verbose equivalents: \italiccorrection */
+
+ tex_primitive(tex_command, "expandafter", expand_after_cmd, expand_after_code, 0);
+ tex_primitive(etex_command, "unless", expand_after_cmd, expand_unless_code, 0);
+ tex_primitive(luatex_command, "futureexpand", expand_after_cmd, future_expand_code, 0);
+ tex_primitive(luatex_command, "futureexpandis", expand_after_cmd, future_expand_is_code, 0);
+ tex_primitive(luatex_command, "futureexpandisap", expand_after_cmd, future_expand_is_ap_code, 0);
+ /* tex_primitive(luatex_command, "expandaftertwo", expand_after_cmd, expand_after_2_code, 0); */ /* Yes or no. */
+ /* tex_primitive(luatex_command, "expandafterthree", expand_after_cmd, expand_after_3_code, 0); */ /* Yes or no. */
+ tex_primitive(luatex_command, "expandafterspaces", expand_after_cmd, expand_after_spaces_code, 0);
+ tex_primitive(luatex_command, "expandafterpars", expand_after_cmd, expand_after_pars_code, 0);
+ tex_primitive(luatex_command, "expandtoken", expand_after_cmd, expand_token_code, 0);
+ tex_primitive(luatex_command, "expandcstoken", expand_after_cmd, expand_cs_token_code, 0);
+ tex_primitive(luatex_command, "expand", expand_after_cmd, expand_code, 0);
+ tex_primitive(luatex_command, "semiexpand", expand_after_cmd, semi_expand_code, 0);
+ tex_primitive(luatex_command, "expandedafter", expand_after_cmd, expand_after_toks_code, 0);
+ /* tex_primitive(luatex_command, "expandafterfi", expand_after_cmd, expand_after_fi, 0); */
+
+ tex_primitive(tex_command, "ignorespaces", ignore_something_cmd, ignore_space_code, 0);
+ tex_primitive(luatex_command, "ignorepars", ignore_something_cmd, ignore_par_code, 0);
+ tex_primitive(luatex_command, "ignorearguments", ignore_something_cmd, ignore_argument_code, 0);
+
+ tex_primitive(tex_command, "input", input_cmd, normal_input_code, 0);
+ tex_primitive(tex_command, "endinput", input_cmd, end_of_input_code, 0);
+ tex_primitive(etex_command, "scantokens", input_cmd, token_input_code, 0);
+ tex_primitive(luatex_command, "scantextokens", input_cmd, tex_token_input_code, 0);
+ tex_primitive(luatex_command, "tokenized", input_cmd, tokenized_code, 0);
+ tex_primitive(luatex_command, "retokenized", input_cmd, retokenized_code, 0);
+ tex_primitive(luatex_command, "quitloop", input_cmd, quit_loop_code, 0);
+
+ tex_primitive(tex_command, "insert", insert_cmd, normal_code, 0);
+
+ tex_primitive(luatex_command, "luafunctioncall", lua_function_call_cmd, lua_function_call_code, 0);
+ tex_primitive(luatex_command, "luabytecodecall", lua_function_call_cmd, lua_bytecode_call_code, 0);
+
+ tex_primitive(tex_command, "mark", set_mark_cmd, set_mark_code, 0);
+ tex_primitive(etex_command, "marks", set_mark_cmd, set_marks_code, 0);
+ tex_primitive(luatex_command, "clearmarks", set_mark_cmd, clear_marks_code, 0);
+ tex_primitive(luatex_command, "flushmarks", set_mark_cmd, flush_marks_code, 0);
+
+ tex_primitive(tex_command, "mathaccent", math_accent_cmd, math_accent_code, 0);
+ tex_primitive(luatex_command, "Umathaccent", math_accent_cmd, math_uaccent_code, 0);
+
+ tex_primitive(tex_command, "mathchar", math_char_number_cmd, math_char_number_code, 0);
+ tex_primitive(luatex_command, "Umathchar", math_char_number_cmd, math_xchar_number_code, 0);
+ tex_primitive(luatex_command, "Umathdict", math_char_number_cmd, math_dchar_number_code, 0);
+ /* tex_primitive(luatex_command, "Umathcharnum", math_char_number_cmd, math_uchar_number_code, 0); */
+ tex_primitive(luatex_command, "Umathclass", math_char_number_cmd, math_class_number_code, 0);
+
+ tex_primitive(tex_command, "mathchoice", math_choice_cmd, math_choice_code, 0);
+ tex_primitive(luatex_command, "Umathdiscretionary", math_choice_cmd, math_discretionary_code, 0);
+ tex_primitive(luatex_command, "Ustack", math_choice_cmd, math_ustack_code, 0);
+
+ tex_primitive(tex_command, "noexpand", no_expand_cmd, normal_code, 0);
+
+ /* tex_primitive(tex_command, "par", end_paragraph_cmd, too_big_char, too_big_char); */ /* See later. */
+
+ tex_primitive(tex_command, "radical", math_radical_cmd, normal_radical_subtype, 0);
+ tex_primitive(luatex_command, "Uradical", math_radical_cmd, radical_radical_subtype, 0);
+ tex_primitive(luatex_command, "Uroot", math_radical_cmd, root_radical_subtype, 0);
+ tex_primitive(luatex_command, "Urooted", math_radical_cmd, rooted_radical_subtype, 0);
+ tex_primitive(luatex_command, "Uunderdelimiter", math_radical_cmd, under_delimiter_radical_subtype, 0);
+ tex_primitive(luatex_command, "Uoverdelimiter", math_radical_cmd, over_delimiter_radical_subtype, 0);
+ tex_primitive(luatex_command, "Udelimiterunder", math_radical_cmd, delimiter_under_radical_subtype, 0);
+ tex_primitive(luatex_command, "Udelimiterover", math_radical_cmd, delimiter_over_radical_subtype, 0);
+ tex_primitive(luatex_command, "Udelimited", math_radical_cmd, delimited_radical_subtype, 0);
+ tex_primitive(luatex_command, "Uhextensible", math_radical_cmd, h_extensible_radical_subtype, 0);
+
+ /* TEX_primitive(tex_command, "relax", relax_cmd, too_big_char, too_big_char); */ /* See later. */
+
+ tex_primitive(tex_command, "setbox", set_box_cmd, normal_code, 0);
+
+ /*tex
+ Instead of |set_(e)tex_shape_cmd| we use |set_specification_cmd| because since \ETEX\
+ it no longer relates to par shapes only. ALso, because there are nodes involved, that
+ themselves have a different implementation, it is less confusing.
+ */
+
+ tex_primitive(tex_command, "parshape", set_specification_cmd, par_shape_code, internal_specification_base);
+ tex_primitive(etex_command, "interlinepenalties", set_specification_cmd, inter_line_penalties_code, internal_specification_base);
+ tex_primitive(etex_command, "clubpenalties", set_specification_cmd, club_penalties_code, internal_specification_base);
+ tex_primitive(etex_command, "widowpenalties", set_specification_cmd, widow_penalties_code, internal_specification_base);
+ tex_primitive(etex_command, "displaywidowpenalties", set_specification_cmd, display_widow_penalties_code, internal_specification_base);
+ tex_primitive(luatex_command, "orphanpenalties", set_specification_cmd, orphan_penalties_code, internal_specification_base);
+ tex_primitive(luatex_command, "mathforwardpenalties", set_specification_cmd, math_forward_penalties_code, internal_specification_base);
+ tex_primitive(luatex_command, "mathbackwardpenalties", set_specification_cmd, math_backward_penalties_code, internal_specification_base);
+
+ tex_primitive(tex_command, "the", the_cmd, the_code, 0);
+ tex_primitive(luatex_command, "thewithoutunit", the_cmd, the_without_unit_code, 0);
+ /* tex_primitive(luatex_command, "thewithproperty", the_cmd, the_with_property_code, 0); */ /* replaced by value functions */
+ tex_primitive(etex_command, "unexpanded", the_cmd, unexpanded_code, 0); /* maybe convert_cmd */
+ tex_primitive(etex_command, "detokenize", the_cmd, detokenize_code, 0); /* maybe convert_cmd */
+
+ tex_primitive(tex_command, "botmark", get_mark_cmd, bot_mark_code, 0); /* \botmarks 0 */
+ tex_primitive(tex_command, "firstmark", get_mark_cmd, first_mark_code, 0); /* \firstmarks 0 */
+ tex_primitive(tex_command, "splitbotmark", get_mark_cmd, split_bot_mark_code, 0); /* \splitbotmarks 0 */
+ tex_primitive(tex_command, "splitfirstmark", get_mark_cmd, split_first_mark_code, 0); /* \splitfirstmarks 0 */
+ tex_primitive(tex_command, "topmark", get_mark_cmd, top_mark_code, 0); /* \topmarks 0 */
+ tex_primitive(etex_command, "botmarks", get_mark_cmd, bot_marks_code, 0);
+ tex_primitive(etex_command, "firstmarks", get_mark_cmd, first_marks_code, 0);
+ tex_primitive(etex_command, "splitbotmarks", get_mark_cmd, split_bot_marks_code, 0);
+ tex_primitive(etex_command, "splitfirstmarks", get_mark_cmd, split_first_marks_code, 0);
+ tex_primitive(etex_command, "topmarks", get_mark_cmd, top_marks_code, 0);
+ tex_primitive(luatex_command, "currentmarks", get_mark_cmd, current_marks_code, 0);
+
+ tex_primitive(tex_command, "vadjust", vadjust_cmd, normal_code, 0);
+
+ tex_primitive(tex_command, "halign", halign_cmd, normal_code, 0);
+ tex_primitive(tex_command, "valign", valign_cmd, normal_code, 0);
+
+ tex_primitive(tex_command, "vcenter", vcenter_cmd, normal_code, 0);
+
+ /* todo rule codes of nodes, so empty will move */
+
+ tex_primitive(tex_command, "vrule", vrule_cmd, normal_rule_code, 0);
+ tex_primitive(luatex_command, "novrule", vrule_cmd, empty_rule_code, 0);
+ tex_primitive(luatex_command, "srule", vrule_cmd, strut_rule_code, 0);
+
+ tex_primitive(tex_command, "hrule", hrule_cmd, normal_rule_code, 0);
+ tex_primitive(luatex_command, "nohrule", hrule_cmd, empty_rule_code, 0);
+
+ tex_primitive(tex_command, "count", register_cmd, int_val_level, 0);
+ tex_primitive(luatex_command, "attribute", register_cmd, attr_val_level, 0);
+ tex_primitive(tex_command, "dimen", register_cmd, dimen_val_level, 0);
+ tex_primitive(tex_command, "skip", register_cmd, glue_val_level, 0);
+ tex_primitive(tex_command, "muskip", register_cmd, mu_val_level, 0);
+ tex_primitive(tex_command, "toks", register_cmd, tok_val_level, 0);
+
+ tex_primitive(tex_command, "spacefactor", set_auxiliary_cmd, space_factor_code, 0);
+ tex_primitive(tex_command, "prevdepth", set_auxiliary_cmd, prev_depth_code, 0);
+ tex_primitive(tex_command, "prevgraf", set_auxiliary_cmd, prev_graf_code, 0);
+ tex_primitive(etex_command, "interactionmode", set_auxiliary_cmd, interaction_mode_code, 0);
+ tex_primitive(luatex_command, "insertmode", set_auxiliary_cmd, insert_mode_code, 0);
+
+ tex_primitive(tex_command, "pagegoal", set_page_property_cmd, page_goal_code, 0);
+ tex_primitive(tex_command, "pagetotal", set_page_property_cmd, page_total_code, 0);
+ tex_primitive(tex_command, "pagestretch", set_page_property_cmd, page_stretch_code, 0);
+ tex_primitive(tex_command, "pagefilstretch", set_page_property_cmd, page_filstretch_code, 0);
+ tex_primitive(tex_command, "pagefillstretch", set_page_property_cmd, page_fillstretch_code, 0);
+ tex_primitive(tex_command, "pagefilllstretch", set_page_property_cmd, page_filllstretch_code, 0);
+ tex_primitive(tex_command, "pageshrink", set_page_property_cmd, page_shrink_code, 0);
+ tex_primitive(tex_command, "pagedepth", set_page_property_cmd, page_depth_code, 0);
+ tex_primitive(luatex_command, "pagevsize", set_page_property_cmd, page_vsize_code, 0);
+
+ tex_primitive(tex_command, "deadcycles", set_page_property_cmd, dead_cycles_code, 0);
+
+ tex_primitive(tex_command, "insertpenalties", set_page_property_cmd, insert_penalties_code, 0);
+ tex_primitive(luatex_command, "insertheights", set_page_property_cmd, insert_heights_code, 0);
+ tex_primitive(luatex_command, "insertstoring", set_page_property_cmd, insert_storing_code, 0);
+
+ tex_primitive(luatex_command, "insertdistance", set_page_property_cmd, insert_distance_code, 0);
+ tex_primitive(luatex_command, "insertmultiplier", set_page_property_cmd, insert_multiplier_code, 0);
+ tex_primitive(luatex_command, "insertlimit", set_page_property_cmd, insert_limit_code, 0);
+ tex_primitive(luatex_command, "insertstorage", set_page_property_cmd, insert_storage_code, 0);
+ tex_primitive(luatex_command, "insertpenalty", set_page_property_cmd, insert_penalty_code, 0);
+ tex_primitive(luatex_command, "insertmaxdepth", set_page_property_cmd, insert_maxdepth_code, 0);
+ tex_primitive(luatex_command, "insertheight", set_page_property_cmd, insert_height_code, 0);
+ tex_primitive(luatex_command, "insertdepth", set_page_property_cmd, insert_depth_code, 0);
+ tex_primitive(luatex_command, "insertwidth", set_page_property_cmd, insert_width_code, 0);
+
+ tex_primitive(tex_command, "wd", set_box_property_cmd, box_width_code, 0);
+ tex_primitive(tex_command, "ht", set_box_property_cmd, box_height_code, 0);
+ tex_primitive(tex_command, "dp", set_box_property_cmd, box_depth_code, 0);
+ tex_primitive(luatex_command, "boxdirection", set_box_property_cmd, box_direction_code, 0);
+ tex_primitive(luatex_command, "boxgeometry", set_box_property_cmd, box_geometry_code, 0);
+ tex_primitive(luatex_command, "boxorientation", set_box_property_cmd, box_orientation_code, 0);
+ tex_primitive(luatex_command, "boxanchor", set_box_property_cmd, box_anchor_code, 0);
+ tex_primitive(luatex_command, "boxanchors", set_box_property_cmd, box_anchors_code, 0);
+ tex_primitive(luatex_command, "boxsource", set_box_property_cmd, box_source_code, 0);
+ tex_primitive(luatex_command, "boxtarget", set_box_property_cmd, box_target_code, 0);
+ tex_primitive(luatex_command, "boxxoffset", set_box_property_cmd, box_xoffset_code, 0);
+ tex_primitive(luatex_command, "boxyoffset", set_box_property_cmd, box_yoffset_code, 0);
+ tex_primitive(luatex_command, "boxxmove", set_box_property_cmd, box_xmove_code, 0);
+ tex_primitive(luatex_command, "boxymove", set_box_property_cmd, box_ymove_code, 0);
+ tex_primitive(luatex_command, "boxtotal", set_box_property_cmd, box_total_code, 0);
+ tex_primitive(luatex_command, "boxshift", set_box_property_cmd, box_shift_code, 0);
+ tex_primitive(luatex_command, "boxadapt", set_box_property_cmd, box_adapt_code, 0);
+ tex_primitive(luatex_command, "boxrepack", set_box_property_cmd, box_repack_code, 0);
+ tex_primitive(luatex_command, "boxfreeze", set_box_property_cmd, box_freeze_code, 0);
+ tex_primitive(luatex_command, "boxattribute", set_box_property_cmd, box_attribute_code, 0);
+
+ tex_primitive(tex_command, "lastpenalty", some_item_cmd, lastpenalty_code, 0);
+ tex_primitive(tex_command, "lastkern", some_item_cmd, lastkern_code, 0);
+ tex_primitive(tex_command, "lastskip", some_item_cmd, lastskip_code, 0);
+ tex_primitive(luatex_command, "lastboundary", some_item_cmd, lastboundary_code, 0);
+ tex_primitive(etex_command, "lastnodetype", some_item_cmd, last_node_type_code, 0);
+ tex_primitive(luatex_command, "lastnodesubtype", some_item_cmd, last_node_subtype_code, 0);
+ tex_primitive(tex_command, "inputlineno", some_item_cmd, input_line_no_code, 0);
+ tex_primitive(tex_command, "badness", some_item_cmd, badness_code, 0);
+ tex_primitive(luatex_command, "overshoot", some_item_cmd, overshoot_code, 0);
+ tex_primitive(luatex_command, "luatexversion", some_item_cmd, luatex_version_code, 0);
+ tex_primitive(luatex_command, "luatexrevision", some_item_cmd, luatex_revision_code, 0);
+ tex_primitive(etex_command, "currentgrouplevel", some_item_cmd, current_group_level_code, 0);
+ tex_primitive(etex_command, "currentgrouptype", some_item_cmd, current_group_type_code, 0);
+ tex_primitive(etex_command, "currentiflevel", some_item_cmd, current_if_level_code, 0);
+ tex_primitive(etex_command, "currentiftype", some_item_cmd, current_if_type_code, 0);
+ tex_primitive(etex_command, "currentifbranch", some_item_cmd, current_if_branch_code, 0);
+ tex_primitive(etex_command, "gluestretchorder", some_item_cmd, glue_stretch_order_code, 0);
+ tex_primitive(etex_command, "glueshrinkorder", some_item_cmd, glue_shrink_order_code, 0);
+ tex_primitive(luatex_command, "fontid", some_item_cmd, font_id_code, 0);
+ tex_primitive(luatex_command, "glyphxscaled", some_item_cmd, glyph_x_scaled_code, 0);
+ tex_primitive(luatex_command, "glyphyscaled", some_item_cmd, glyph_y_scaled_code, 0);
+ tex_primitive(etex_command, "fontcharwd", some_item_cmd, font_char_wd_code, 0);
+ tex_primitive(etex_command, "fontcharht", some_item_cmd, font_char_ht_code, 0);
+ tex_primitive(etex_command, "fontchardp", some_item_cmd, font_char_dp_code, 0);
+ tex_primitive(etex_command, "fontcharic", some_item_cmd, font_char_ic_code, 0);
+ tex_primitive(luatex_command, "fontcharta", some_item_cmd, font_char_ta_code, 0);
+ tex_primitive(luatex_command, "fontspecid", some_item_cmd, font_spec_id_code, 0);
+ tex_primitive(luatex_command, "fontspecscale", some_item_cmd, font_spec_scale_code, 0);
+ tex_primitive(luatex_command, "fontspecxscale", some_item_cmd, font_spec_xscale_code, 0);
+ tex_primitive(luatex_command, "fontspecyscale", some_item_cmd, font_spec_yscale_code, 0);
+ tex_primitive(luatex_command, "fontspecifiedsize", some_item_cmd, font_size_code, 0);
+ tex_primitive(luatex_command, "fontmathcontrol", some_item_cmd, font_math_control_code, 0);
+ tex_primitive(luatex_command, "fonttextcontrol", some_item_cmd, font_text_control_code, 0);
+ tex_primitive(luatex_command, "mathscale", some_item_cmd, math_scale_code, 0);
+ tex_primitive(luatex_command, "mathstyle", some_item_cmd, math_style_code, 0);
+ tex_primitive(luatex_command, "mathmainstyle", some_item_cmd, math_main_style_code, 0);
+ tex_primitive(luatex_command, "mathstylefontid", some_item_cmd, math_style_font_id_code, 0);
+ tex_primitive(luatex_command, "mathstackstyle", some_item_cmd, math_stack_style_code, 0);
+ tex_primitive(luatex_command, "Umathcharclass", some_item_cmd, math_char_class_code, 0);
+ tex_primitive(luatex_command, "Umathcharfam", some_item_cmd, math_char_fam_code, 0);
+ tex_primitive(luatex_command, "Umathcharslot", some_item_cmd, math_char_slot_code, 0);
+ tex_primitive(luatex_command, "lastarguments", some_item_cmd, last_arguments_code, 0);
+ tex_primitive(luatex_command, "parametercount", some_item_cmd, parameter_count_code, 0);
+ /* tex_primitive(luatex_command, "luavaluefunction", some_item_cmd, lua_value_function_code, 0); */
+ tex_primitive(luatex_command, "insertprogress", some_item_cmd, insert_progress_code, 0);
+ tex_primitive(luatex_command, "leftmarginkern", some_item_cmd, left_margin_kern_code, 0);
+ tex_primitive(luatex_command, "rightmarginkern", some_item_cmd, right_margin_kern_code, 0);
+ tex_primitive(etex_command, "parshapelength", some_item_cmd, par_shape_length_code, 0);
+ tex_primitive(etex_command, "parshapeindent", some_item_cmd, par_shape_indent_code, 0);
+ tex_primitive(etex_command, "parshapedimen", some_item_cmd, par_shape_dimen_code, 0);
+ tex_primitive(etex_command, "gluestretch", some_item_cmd, glue_stretch_code, 0);
+ tex_primitive(etex_command, "glueshrink", some_item_cmd, glue_shrink_code, 0);
+ tex_primitive(etex_command, "mutoglue", some_item_cmd, mu_to_glue_code, 0);
+ tex_primitive(etex_command, "gluetomu", some_item_cmd, glue_to_mu_code, 0);
+ tex_primitive(etex_command, "numexpr", some_item_cmd, numexpr_code, 0);
+ tex_primitive(etex_command, "dimexpr", some_item_cmd, dimexpr_code, 0);
+ tex_primitive(etex_command, "glueexpr", some_item_cmd, glueexpr_code, 0);
+ tex_primitive(etex_command, "muexpr", some_item_cmd, muexpr_code, 0);
+ tex_primitive(luatex_command, "numexpression", some_item_cmd, numexpression_code, 0); /* experiment */
+ tex_primitive(luatex_command, "dimexpression", some_item_cmd, dimexpression_code, 0); /* experiment */
+ // tex_primitive(luatex_command, "dimentoscale", some_item_cmd, dimen_to_scale_code, 0);
+ tex_primitive(luatex_command, "lastchknum", some_item_cmd, last_chk_num_code, 0);
+ tex_primitive(luatex_command, "lastchkdim", some_item_cmd, last_chk_dim_code, 0);
+ tex_primitive(luatex_command, "numericscale", some_item_cmd, numeric_scale_code, 0);
+ tex_primitive(luatex_command, "indexofregister", some_item_cmd, index_of_register_code, 0);
+ tex_primitive(luatex_command, "indexofcharacter", some_item_cmd, index_of_character_code, 0);
+ tex_primitive(luatex_command, "currentloopiterator", some_item_cmd, current_loop_iterator_code, 0);
+ tex_primitive(luatex_command, "currentloopnesting", some_item_cmd, current_loop_nesting_code, 0);
+ tex_primitive(luatex_command, "lastloopiterator", some_item_cmd, last_loop_iterator_code, 0);
+ tex_primitive(luatex_command, "lastparcontext", some_item_cmd, last_par_context_code, 0);
+ tex_primitive(luatex_command, "lastpageextra", some_item_cmd, last_page_extra_code, 0);
+ tex_primitive(luatex_command, "scaledslantperpoint", some_item_cmd, scaled_slant_per_point_code, 0);
+ tex_primitive(luatex_command, "scaledinterwordspace", some_item_cmd, scaled_interword_space_code, 0);
+ tex_primitive(luatex_command, "scaledinterwordstretch", some_item_cmd, scaled_interword_stretch_code, 0);
+ tex_primitive(luatex_command, "scaledinterwordshrink", some_item_cmd, scaled_interword_shrink_code, 0);
+ tex_primitive(luatex_command, "scaledexheight", some_item_cmd, scaled_ex_height_code, 0);
+ tex_primitive(luatex_command, "scaledemwidth", some_item_cmd, scaled_em_width_code, 0);
+ tex_primitive(luatex_command, "scaledextraspace", some_item_cmd, scaled_extra_space_code, 0);
+ tex_primitive(luatex_command, "mathatomglue", some_item_cmd, math_atom_glue_code, 0);
+ tex_primitive(luatex_command, "lastleftclass", some_item_cmd, last_left_class_code, 0);
+ tex_primitive(luatex_command, "lastrightclass", some_item_cmd, last_right_class_code, 0);
+ tex_primitive(luatex_command, "lastatomclass", some_item_cmd, last_atom_class_code, 0);
+
+ tex_primitive(tex_command, "fontname", convert_cmd, font_name_code, 0);
+ tex_primitive(luatex_command, "fontspecifiedname", convert_cmd, font_specification_code, 0);
+ tex_primitive(tex_command, "jobname", convert_cmd, job_name_code, 0);
+ tex_primitive(tex_command, "meaning", convert_cmd, meaning_code, 0);
+ tex_primitive(luatex_command, "meaningfull", convert_cmd, meaning_full_code, 0);
+ tex_primitive(luatex_command, "meaningless", convert_cmd, meaning_less_code, 0);
+ tex_primitive(luatex_command, "meaningasis", convert_cmd, meaning_asis_code, 0); /* for manuals and articles */
+ /*tex Maybe some day also |meaningonly| (no macro: in front). */
+ tex_primitive(tex_command, "number", convert_cmd, number_code, 0);
+ tex_primitive(luatex_command, "tointeger", convert_cmd, to_integer_code, 0);
+ tex_primitive(luatex_command, "tohexadecimal", convert_cmd, to_hexadecimal_code, 0);
+ tex_primitive(luatex_command, "toscaled", convert_cmd, to_scaled_code, 0);
+ tex_primitive(luatex_command, "tosparsescaled", convert_cmd, to_sparse_scaled_code, 0);
+ tex_primitive(luatex_command, "todimension", convert_cmd, to_dimension_code, 0);
+ tex_primitive(luatex_command, "tosparsedimension", convert_cmd, to_sparse_dimension_code, 0);
+ tex_primitive(luatex_command, "tomathstyle", convert_cmd, to_mathstyle_code, 0);
+ tex_primitive(tex_command, "romannumeral", convert_cmd, roman_numeral_code, 0);
+ tex_primitive(tex_command, "string", convert_cmd, string_code, 0);
+ tex_primitive(luatex_command, "directlua", convert_cmd, lua_code, 0);
+ tex_primitive(luatex_command, "csstring", convert_cmd, cs_string_code, 0);
+ tex_primitive(luatex_command, "detokenized", convert_cmd, detokenized_code, 0);
+ tex_primitive(luatex_command, "expanded", convert_cmd, expanded_code, 0);
+ tex_primitive(luatex_command, "semiexpanded", convert_cmd, semi_expanded_code, 0);
+ tex_primitive(luatex_command, "formatname", convert_cmd, format_name_code, 0);
+ tex_primitive(luatex_command, "luabytecode", convert_cmd, lua_bytecode_code, 0);
+ tex_primitive(luatex_command, "luaescapestring", convert_cmd, lua_escape_string_code, 0);
+ tex_primitive(luatex_command, "luafunction", convert_cmd, lua_function_code, 0);
+ tex_primitive(luatex_command, "luatexbanner", convert_cmd, luatex_banner_code, 0);
+ tex_primitive(luatex_command, "Uchar", convert_cmd, uchar_code, 0);
+
+ /* tex_primitive(tex_command, "fi", if_test_cmd, fi_code, 0); */ /* See later. */
+ tex_primitive(tex_command, "or", if_test_cmd, or_code, 0);
+ tex_primitive(tex_command, "else", if_test_cmd, else_code, 0);
+ tex_primitive(luatex_command, "orelse", if_test_cmd, or_else_code, 0);
+ tex_primitive(luatex_command, "orunless", if_test_cmd, or_unless_code, 0);
+
+ tex_primitive(tex_command, "if", if_test_cmd, if_char_code, 0);
+ tex_primitive(tex_command, "ifcat", if_test_cmd, if_cat_code, 0);
+ tex_primitive(tex_command, "ifnum", if_test_cmd, if_int_code, 0);
+ tex_primitive(tex_command, "ifdim", if_test_cmd, if_dim_code, 0);
+ tex_primitive(tex_command, "ifodd", if_test_cmd, if_odd_code, 0);
+ tex_primitive(tex_command, "ifvmode", if_test_cmd, if_vmode_code, 0);
+ tex_primitive(tex_command, "ifhmode", if_test_cmd, if_hmode_code, 0);
+ tex_primitive(tex_command, "ifmmode", if_test_cmd, if_mmode_code, 0);
+ tex_primitive(tex_command, "ifinner", if_test_cmd, if_inner_code, 0);
+ tex_primitive(tex_command, "ifvoid", if_test_cmd, if_void_code, 0);
+ tex_primitive(tex_command, "ifhbox", if_test_cmd, if_hbox_code, 0);
+ tex_primitive(tex_command, "ifvbox", if_test_cmd, if_vbox_code, 0);
+ tex_primitive(tex_command, "ifx", if_test_cmd, if_x_code, 0);
+ tex_primitive(tex_command, "iftrue", if_test_cmd, if_true_code, 0);
+ tex_primitive(tex_command, "iffalse", if_test_cmd, if_false_code, 0);
+ tex_primitive(tex_command, "ifcase", if_test_cmd, if_case_code, 0);
+ tex_primitive(etex_command, "ifdefined", if_test_cmd, if_def_code, 0);
+ tex_primitive(etex_command, "ifcsname", if_test_cmd, if_cs_code, 0);
+ tex_primitive(etex_command, "iffontchar", if_test_cmd, if_font_char_code, 0);
+ tex_primitive(luatex_command, "ifincsname", if_test_cmd, if_in_csname_code, 0); /* This is obsolete and might be dropped. */
+ tex_primitive(luatex_command, "ifabsnum", if_test_cmd, if_abs_int_code, 0);
+ tex_primitive(luatex_command, "ifabsdim", if_test_cmd, if_abs_dim_code, 0);
+ tex_primitive(luatex_command, "ifchknum", if_test_cmd, if_chk_int_code, 0);
+ tex_primitive(luatex_command, "ifchkdim", if_test_cmd, if_chk_dim_code, 0);
+ tex_primitive(luatex_command, "ifcmpnum", if_test_cmd, if_cmp_int_code, 0);
+ tex_primitive(luatex_command, "ifcmpdim", if_test_cmd, if_cmp_dim_code, 0);
+ tex_primitive(luatex_command, "ifnumval", if_test_cmd, if_val_int_code, 0);
+ tex_primitive(luatex_command, "ifdimval", if_test_cmd, if_val_dim_code, 0);
+ tex_primitive(luatex_command, "iftok", if_test_cmd, if_tok_code, 0);
+ tex_primitive(luatex_command, "ifcstok", if_test_cmd, if_cstok_code, 0);
+ tex_primitive(luatex_command, "ifcondition", if_test_cmd, if_condition_code, 0);
+ tex_primitive(luatex_command, "ifflags", if_test_cmd, if_flags_code, 0);
+ tex_primitive(luatex_command, "ifempty", if_test_cmd, if_empty_cmd_code, 0);
+ tex_primitive(luatex_command, "ifrelax", if_test_cmd, if_relax_cmd_code, 0);
+ tex_primitive(luatex_command, "ifboolean", if_test_cmd, if_boolean_code, 0);
+ tex_primitive(luatex_command, "ifnumexpression", if_test_cmd, if_numexpression_code, 0);
+ tex_primitive(luatex_command, "ifdimexpression", if_test_cmd, if_dimexpression_code, 0);
+ tex_primitive(luatex_command, "ifmathparameter", if_test_cmd, if_math_parameter_code, 0);
+ tex_primitive(luatex_command, "ifmathstyle", if_test_cmd, if_math_style_code, 0);
+ tex_primitive(luatex_command, "ifarguments", if_test_cmd, if_arguments_code, 0);
+ tex_primitive(luatex_command, "ifparameters", if_test_cmd, if_parameters_code, 0);
+ tex_primitive(luatex_command, "ifparameter", if_test_cmd, if_parameter_code, 0);
+ tex_primitive(luatex_command, "ifhastok", if_test_cmd, if_has_tok_code, 0);
+ tex_primitive(luatex_command, "ifhastoks", if_test_cmd, if_has_toks_code, 0);
+ tex_primitive(luatex_command, "ifhasxtoks", if_test_cmd, if_has_xtoks_code, 0);
+ tex_primitive(luatex_command, "ifhaschar", if_test_cmd, if_has_char_code, 0);
+ tex_primitive(luatex_command, "ifinsert", if_test_cmd, if_insert_code, 0);
+ /* tex_primitive(luatex_command, "ifbitwiseand", if_test_cmd, if_bitwise_and_code, 0); */
+
+ tex_primitive(tex_command, "above", math_fraction_cmd, math_above_code, 0);
+ tex_primitive(tex_command, "abovewithdelims", math_fraction_cmd, math_above_delimited_code, 0);
+ tex_primitive(tex_command, "atop", math_fraction_cmd, math_atop_code, 0);
+ tex_primitive(tex_command, "atopwithdelims", math_fraction_cmd, math_atop_delimited_code, 0);
+ tex_primitive(tex_command, "over", math_fraction_cmd, math_over_code, 0);
+ tex_primitive(tex_command, "overwithdelims", math_fraction_cmd, math_over_delimited_code, 0);
+ /* tex_primitive(luatex_command, "skewed", math_fraction_cmd, math_skewed_code, 0); */ /* makes no sense */
+ /* tex_primitive(luatex_command, "skewedwithdelims", math_fraction_cmd, math_skewed_delimited_code, 0); */ /* makes no sense */
+ /* tex_primitive(luatex_command, "stretched", math_fraction_cmd, math_stretched_code, 0); */ /* makes no sense */
+ /* tex_primitive(luatex_command, "stretchedwithdelims", math_fraction_cmd, math_stretched_delimited_code, 0); */ /* makes no sense */
+
+ tex_primitive(luatex_command, "Uabove", math_fraction_cmd, math_u_above_code, 0);
+ tex_primitive(luatex_command, "Uabovewithdelims", math_fraction_cmd, math_u_above_delimited_code, 0);
+ tex_primitive(luatex_command, "Uatop", math_fraction_cmd, math_u_atop_code, 0);
+ tex_primitive(luatex_command, "Uatopwithdelims", math_fraction_cmd, math_u_atop_delimited_code, 0);
+ tex_primitive(luatex_command, "Uover", math_fraction_cmd, math_u_over_code, 0);
+ tex_primitive(luatex_command, "Uoverwithdelims", math_fraction_cmd, math_u_over_delimited_code, 0);
+ tex_primitive(luatex_command, "Uskewed", math_fraction_cmd, math_u_skewed_code, 0);
+ tex_primitive(luatex_command, "Uskewedwithdelims", math_fraction_cmd, math_u_skewed_delimited_code, 0);
+ tex_primitive(luatex_command, "Ustretched", math_fraction_cmd, math_u_stretched_code, 0);
+ tex_primitive(luatex_command, "Ustretchedwithdelims", math_fraction_cmd, math_u_stretched_delimited_code, 0);
+
+ tex_primitive(tex_command, "hyphenchar", set_font_property_cmd, font_hyphen_code, 0);
+ tex_primitive(tex_command, "skewchar", set_font_property_cmd, font_skew_code, 0);
+ tex_primitive(luatex_command, "efcode", set_font_property_cmd, font_ef_code, 0);
+ tex_primitive(luatex_command, "lpcode", set_font_property_cmd, font_lp_code, 0);
+ tex_primitive(luatex_command, "rpcode", set_font_property_cmd, font_rp_code, 0);
+ tex_primitive(tex_command, "fontdimen", set_font_property_cmd, font_dimen_code, 0);
+ tex_primitive(luatex_command, "scaledfontdimen", set_font_property_cmd, scaled_font_dimen_code, 0);
+
+ tex_primitive(tex_command, "lowercase", case_shift_cmd, lower_case_code, 0);
+ tex_primitive(tex_command, "uppercase", case_shift_cmd, upper_case_code, 0);
+
+ tex_primitive(tex_command, "catcode", define_char_code_cmd, catcode_charcode, 0);
+ tex_primitive(tex_command, "lccode", define_char_code_cmd, lccode_charcode, 0);
+ tex_primitive(tex_command, "uccode", define_char_code_cmd, uccode_charcode, 0);
+ tex_primitive(tex_command, "sfcode", define_char_code_cmd, sfcode_charcode, 0);
+ tex_primitive(luatex_command, "hccode", define_char_code_cmd, hccode_charcode, 0);
+ tex_primitive(luatex_command, "hmcode", define_char_code_cmd, hmcode_charcode, 0);
+ tex_primitive(tex_command, "mathcode", define_char_code_cmd, mathcode_charcode, 0);
+ tex_primitive(tex_command, "delcode", define_char_code_cmd, delcode_charcode, 0);
+
+ tex_primitive(luatex_command, "Umathcode", define_char_code_cmd, extmathcode_charcode, 0);
+ /* tex_primitive(luatex_command, "Umathcodenum", define_char_code_cmd, extmathcodenum_charcode, 0); */
+ tex_primitive(luatex_command, "Udelcode", define_char_code_cmd, extdelcode_charcode, 0);
+ /* tex_primitive(luatex_command, "Udelcodenum", define_char_code_cmd, extdelcodenum_charcode, 0); */
+
+ tex_primitive(tex_command, "edef", def_cmd, expanded_def_code, 0);
+ tex_primitive(tex_command, "def", def_cmd, def_code, 0);
+ tex_primitive(tex_command, "xdef", def_cmd, global_expanded_def_code, 0);
+ tex_primitive(tex_command, "gdef", def_cmd, global_def_code, 0);
+ tex_primitive(luatex_command, "edefcsname", def_cmd, expanded_def_csname_code, 0);
+ tex_primitive(luatex_command, "defcsname", def_cmd, def_csname_code, 0);
+ tex_primitive(luatex_command, "xdefcsname", def_cmd, global_expanded_def_csname_code, 0);
+ tex_primitive(luatex_command, "gdefcsname", def_cmd, global_def_csname_code, 0);
+
+ tex_primitive(tex_command, "scriptfont", define_family_cmd, script_size, 0);
+ tex_primitive(tex_command, "scriptscriptfont", define_family_cmd, script_script_size, 0);
+ tex_primitive(tex_command, "textfont", define_family_cmd, text_size, 0);
+
+ tex_primitive(tex_command, "discretionary", discretionary_cmd, normal_discretionary_code, 0);
+ tex_primitive(tex_command, "-", discretionary_cmd, explicit_discretionary_code, 0);
+ tex_primitive(luatex_command, "explicitdiscretionary", discretionary_cmd, explicit_discretionary_code, 0);
+ tex_primitive(luatex_command, "automaticdiscretionary", discretionary_cmd, automatic_discretionary_code, 0);
+
+ tex_primitive(tex_command, "leqno", equation_number_cmd, left_location_code, 0);
+ tex_primitive(tex_command, "eqno", equation_number_cmd, right_location_code, 0);
+
+ tex_primitive(tex_command, "moveright", hmove_cmd, move_forward_code, 0);
+ tex_primitive(tex_command, "moveleft", hmove_cmd, move_backward_code, 0);
+
+ tex_primitive(tex_command, "hfil", hskip_cmd, fil_code, 0);
+ tex_primitive(tex_command, "hfill", hskip_cmd, fill_code, 0);
+ tex_primitive(tex_command, "hss", hskip_cmd, filll_code, 0);
+ tex_primitive(tex_command, "hfilneg", hskip_cmd, fil_neg_code, 0);
+ tex_primitive(tex_command, "hskip", hskip_cmd, skip_code, 0);
+
+ tex_primitive(tex_command, "hyphenation", hyphenation_cmd, hyphenation_code, 0);
+ tex_primitive(tex_command, "patterns", hyphenation_cmd, patterns_code, 0);
+ tex_primitive(luatex_command, "prehyphenchar", hyphenation_cmd, prehyphenchar_code, 0);
+ tex_primitive(luatex_command, "posthyphenchar", hyphenation_cmd, posthyphenchar_code, 0);
+ tex_primitive(luatex_command, "preexhyphenchar", hyphenation_cmd, preexhyphenchar_code, 0);
+ tex_primitive(luatex_command, "postexhyphenchar", hyphenation_cmd, postexhyphenchar_code, 0);
+ tex_primitive(luatex_command, "hyphenationmin", hyphenation_cmd, hyphenationmin_code, 0);
+ tex_primitive(luatex_command, "hjcode", hyphenation_cmd, hjcode_code, 0);
+
+ tex_primitive(tex_command, "kern", kern_cmd, normal_kern_code, 0);
+ /* tex_primitive(tex_command, "hkern", kern_cmd, h_kern_code, 0); */
+ /* tex_primitive(tex_command, "vkern", kern_cmd, v_kern_code, 0); */
+ /* tex_primitive(tex_command, "nonzerowidthkern", kern_cmd, non_zero_width_kern_code, 0); */ /* maybe */
+
+ tex_primitive(luatex_command, "localleftbox", local_box_cmd, local_left_box_code, 0);
+ tex_primitive(luatex_command, "localrightbox", local_box_cmd, local_right_box_code, 0);
+ tex_primitive(luatex_command, "localmiddlebox", local_box_cmd, local_middle_box_code, 0);
+
+ tex_primitive(tex_command, "shipout", legacy_cmd, shipout_code, 0);
+
+ tex_primitive(tex_command, "leaders", leader_cmd, a_leaders_code, 0);
+ tex_primitive(tex_command, "cleaders", leader_cmd, c_leaders_code, 0);
+ tex_primitive(tex_command, "xleaders", leader_cmd, x_leaders_code, 0);
+ tex_primitive(luatex_command, "gleaders", leader_cmd, g_leaders_code, 0);
+ tex_primitive(luatex_command, "uleaders", leader_cmd, u_leaders_code, 0);
+
+ tex_primitive(tex_command, "left", math_fence_cmd, left_fence_side, 0);
+ tex_primitive(tex_command, "middle", math_fence_cmd, middle_fence_side, 0);
+ tex_primitive(tex_command, "right", math_fence_cmd, right_fence_side, 0);
+ tex_primitive(luatex_command, "Uvextensible", math_fence_cmd, no_fence_side, 0);
+ tex_primitive(luatex_command, "Uleft", math_fence_cmd, extended_left_fence_side, 0);
+ tex_primitive(luatex_command, "Umiddle", math_fence_cmd, extended_middle_fence_side, 0);
+ tex_primitive(luatex_command, "Uright", math_fence_cmd, extended_right_fence_side, 0);
+ tex_primitive(luatex_command, "Uoperator", math_fence_cmd, left_operator_side, 0);
+
+ tex_primitive(luatex_command, "glet", let_cmd, global_let_code, 0);
+ tex_primitive(tex_command, "let", let_cmd, let_code, 0);
+ tex_primitive(tex_command, "futurelet", let_cmd, future_let_code, 0);
+ tex_primitive(luatex_command, "futuredef", let_cmd, future_def_code, 0);
+ tex_primitive(luatex_command, "letcharcode", let_cmd, let_charcode_code, 0);
+ tex_primitive(luatex_command, "swapcsvalues", let_cmd, swap_cs_values_code, 0);
+ tex_primitive(luatex_command, "letprotected", let_cmd, let_protected_code, 0);
+ tex_primitive(luatex_command, "unletprotected", let_cmd, unlet_protected_code, 0);
+ tex_primitive(luatex_command, "letfrozen", let_cmd, let_frozen_code, 0);
+ tex_primitive(luatex_command, "unletfrozen", let_cmd, unlet_frozen_code, 0);
+ tex_primitive(luatex_command, "letcsname", let_cmd, let_csname_code, 0);
+ tex_primitive(luatex_command, "gletcsname", let_cmd, global_let_csname_code, 0);
+ tex_primitive(luatex_command, "lettonothing", let_cmd, let_to_nothing_code, 0); /* more a def but a let is nicer */
+ tex_primitive(luatex_command, "glettonothing", let_cmd, global_let_to_nothing_code, 0); /* more a def but a let is nicer */
+
+ tex_primitive(tex_command, "displaylimits", math_modifier_cmd, display_limits_modifier_code, 0); /*tex so |math_limits_cmd| became |math_modifier_cmd| */
+ tex_primitive(tex_command, "limits", math_modifier_cmd, limits_modifier_code, 0);
+ tex_primitive(tex_command, "nolimits", math_modifier_cmd, no_limits_modifier_code, 0);
+
+ /* beware, Umathaxis is overloaded ... maybe only a generic modifier with keywords */
+
+ tex_primitive(luatex_command, "Umathadapttoleft", math_modifier_cmd, adapt_to_left_modifier_code, 0);
+ tex_primitive(luatex_command, "Umathadapttoright", math_modifier_cmd, adapt_to_right_modifier_code, 0);
+ tex_primitive(luatex_command, "Umathuseaxis", math_modifier_cmd, axis_modifier_code, 0);
+ tex_primitive(luatex_command, "Umathnoaxis", math_modifier_cmd, no_axis_modifier_code, 0);
+ tex_primitive(luatex_command, "Umathphantom", math_modifier_cmd, phantom_modifier_code, 0);
+ tex_primitive(luatex_command, "Umathvoid", math_modifier_cmd, void_modifier_code, 0);
+ tex_primitive(luatex_command, "Umathsource", math_modifier_cmd, source_modifier_code, 0);
+ tex_primitive(luatex_command, "Umathopenupheight", math_modifier_cmd, openup_height_modifier_code, 0);
+ tex_primitive(luatex_command, "Umathopenupdepth", math_modifier_cmd, openup_depth_modifier_code, 0);
+ tex_primitive(luatex_command, "Umathlimits", math_modifier_cmd, limits_modifier_code, 0);
+ tex_primitive(luatex_command, "Umathnolimits", math_modifier_cmd, no_limits_modifier_code, 0);
+
+ tex_primitive(tex_command, "box", make_box_cmd, box_code, 0);
+ tex_primitive(tex_command, "copy", make_box_cmd, copy_code, 0);
+ tex_primitive(tex_command, "lastbox", make_box_cmd, last_box_code, 0);
+ tex_primitive(tex_command, "vsplit", make_box_cmd, vsplit_code, 0);
+ tex_primitive(luatex_command, "tpack", make_box_cmd, tpack_code, 0);
+ tex_primitive(luatex_command, "vpack", make_box_cmd, vpack_code, 0);
+ tex_primitive(luatex_command, "hpack", make_box_cmd, hpack_code, 0);
+ tex_primitive(tex_command, "vtop", make_box_cmd, vtop_code, 0);
+ tex_primitive(tex_command, "vbox", make_box_cmd, vbox_code, 0);
+ tex_primitive(tex_command, "hbox", make_box_cmd, hbox_code, 0);
+ tex_primitive(luatex_command, "insertbox", make_box_cmd, insert_box_code, 0);
+ tex_primitive(luatex_command, "insertcopy", make_box_cmd, insert_copy_code, 0);
+ tex_primitive(luatex_command, "localleftboxbox", make_box_cmd, local_left_box_box_code, 0);
+ tex_primitive(luatex_command, "localrightboxbox", make_box_cmd, local_right_box_box_code, 0);
+ tex_primitive(luatex_command, "localmiddleboxbox", make_box_cmd, local_middle_box_box_code, 0);
+
+ tex_primitive(tex_command, "mathord", math_component_cmd, math_component_ordinary_code, 0);
+ tex_primitive(tex_command, "mathop", math_component_cmd, math_component_operator_code, 0);
+ tex_primitive(tex_command, "mathbin", math_component_cmd, math_component_binary_code, 0);
+ tex_primitive(tex_command, "mathrel", math_component_cmd, math_component_relation_code, 0);
+ tex_primitive(tex_command, "mathopen", math_component_cmd, math_component_open_code, 0);
+ tex_primitive(tex_command, "mathclose", math_component_cmd, math_component_close_code, 0);
+ tex_primitive(tex_command, "mathpunct", math_component_cmd, math_component_punctuation_code, 0);
+ tex_primitive(tex_command, "mathinner", math_component_cmd, math_component_inner_code, 0);
+ tex_primitive(luatex_command, "mathfrac", math_component_cmd, math_component_fraction_code, 0);
+ tex_primitive(luatex_command, "mathrad", math_component_cmd, math_component_radical_code, 0);
+ tex_primitive(luatex_command, "mathmiddle", math_component_cmd, math_component_middle_code, 0);
+ tex_primitive(luatex_command, "mathaccent", math_component_cmd, math_component_accent_code, 0);
+ tex_primitive(luatex_command, "mathfenced", math_component_cmd, math_component_fenced_code, 0);
+ tex_primitive(tex_command, "underline", math_component_cmd, math_component_under_code, 0);
+ tex_primitive(tex_command, "overline", math_component_cmd, math_component_over_code, 0);
+ tex_primitive(luatex_command, "mathghost", math_component_cmd, math_component_ghost_code, 0);
+ tex_primitive(luatex_command, "mathatom", math_component_cmd, math_component_atom_code, 0);
+
+ tex_primitive(luatex_command, "Ustartmath", math_shift_cs_cmd, begin_inline_math_code, 0);
+ tex_primitive(luatex_command, "Ustopmath", math_shift_cs_cmd, end_inline_math_code, 0);
+ tex_primitive(luatex_command, "Ustartdisplaymath", math_shift_cs_cmd, begin_display_math_code, 0);
+ tex_primitive(luatex_command, "Ustopdisplaymath", math_shift_cs_cmd, end_display_math_code, 0);
+ tex_primitive(luatex_command, "Ustartmathmode", math_shift_cs_cmd, begin_math_mode_code, 0);
+ tex_primitive(luatex_command, "Ustopmathmode", math_shift_cs_cmd, end_math_mode_code, 0);
+
+ tex_primitive(tex_command, "displaystyle", math_style_cmd, display_style, 0);
+ tex_primitive(tex_command, "textstyle", math_style_cmd, text_style, 0);
+ tex_primitive(tex_command, "scriptstyle", math_style_cmd, script_style, 0);
+ tex_primitive(tex_command, "scriptscriptstyle", math_style_cmd, script_script_style, 0);
+ tex_primitive(luatex_command, "crampeddisplaystyle", math_style_cmd, cramped_display_style, 0);
+ tex_primitive(luatex_command, "crampedtextstyle", math_style_cmd, cramped_text_style, 0);
+ tex_primitive(luatex_command, "crampedscriptstyle", math_style_cmd, cramped_script_style, 0);
+ tex_primitive(luatex_command, "crampedscriptscriptstyle", math_style_cmd, cramped_script_script_style, 0);
+ tex_primitive(luatex_command, "Ustyle", math_style_cmd, yet_unset_math_style, 0);
+ tex_primitive(luatex_command, "scaledmathstyle", math_style_cmd, scaled_math_style, 0);
+ tex_primitive(luatex_command, "alldisplaystyles", math_style_cmd, all_display_styles, 0);
+ tex_primitive(luatex_command, "alltextstyles", math_style_cmd, all_text_styles, 0);
+ tex_primitive(luatex_command, "allscriptstyles", math_style_cmd, all_script_styles, 0);
+ tex_primitive(luatex_command, "allscriptscriptstyles", math_style_cmd, all_script_script_styles, 0);
+ tex_primitive(luatex_command, "allmathstyles", math_style_cmd, all_math_styles, 0);
+ tex_primitive(luatex_command, "allsplitstyles", math_style_cmd, all_split_styles, 0);
+ tex_primitive(luatex_command, "alluncrampedstyles", math_style_cmd, all_uncramped_styles, 0);
+ tex_primitive(luatex_command, "allcrampedstyles", math_style_cmd, all_cramped_styles, 0);
+
+ tex_primitive(tex_command, "message", message_cmd, message_code, 0);
+ tex_primitive(tex_command, "errmessage", message_cmd, error_message_code, 0);
+
+ tex_primitive(tex_command, "mkern", mkern_cmd, normal_code, 0);
+
+ tex_primitive(tex_command, "mskip", mskip_cmd, normal_mskip_code, 0);
+ tex_primitive(luatex_command, "mathatomskip", mskip_cmd, atom_mskip_code, 0);
+
+ /*tex
+ We keep |\long| and |\outer| as dummies, while |\protected| is promoted to a real cmd
+ and |\frozen| can provide a mild form of protection against overloads. We still intercept
+ the commands.
+ */
+
+ tex_primitive(luatex_command, "frozen", prefix_cmd, frozen_code, 0);
+ tex_primitive(luatex_command, "permanent", prefix_cmd, permanent_code, 0);
+ tex_primitive(luatex_command, "immutable", prefix_cmd, immutable_code, 0);
+ tex_primitive(luatex_command, "mutable", prefix_cmd, mutable_code, 0);
+ /* tex_primitive(luatex_command, "primitive", prefix_cmd, primitive_code, 0); */
+ tex_primitive(luatex_command, "noaligned", prefix_cmd, noaligned_code, 0);
+ tex_primitive(luatex_command, "instance", prefix_cmd, instance_code, 0);
+ tex_primitive(luatex_command, "untraced", prefix_cmd, untraced_code, 0);
+ tex_primitive(tex_command, "global", prefix_cmd, global_code, 0);
+ tex_primitive(luatex_command, "tolerant", prefix_cmd, tolerant_code, 0);
+ tex_primitive(etex_command, "protected", prefix_cmd, protected_code, 0);
+ tex_primitive(luatex_command, "overloaded", prefix_cmd, overloaded_code, 0);
+ tex_primitive(luatex_command, "aliased", prefix_cmd, aliased_code, 0);
+ tex_primitive(luatex_command, "immediate", prefix_cmd, immediate_code, 0);
+ tex_primitive(luatex_command, "semiprotected", prefix_cmd, semiprotected_code, 0);
+ tex_primitive(luatex_command, "enforced", prefix_cmd, enforced_code, 0);
+ tex_primitive(luatex_command, "inherited", prefix_cmd, inherited_code, 0);
+
+ tex_primitive(tex_command, "long", prefix_cmd, long_code, 0);
+ tex_primitive(tex_command, "outer", prefix_cmd, outer_code, 0);
+
+ tex_primitive(tex_command, "unkern", remove_item_cmd, kern_item_code, 0);
+ tex_primitive(tex_command, "unpenalty", remove_item_cmd, penalty_item_code, 0);
+ tex_primitive(tex_command, "unskip", remove_item_cmd, skip_item_code, 0);
+ tex_primitive(tex_command, "unboundary", remove_item_cmd, boundary_item_code, 0);
+
+ tex_primitive(tex_command, "batchmode", set_interaction_cmd, batch_mode, 0);
+ tex_primitive(tex_command, "errorstopmode", set_interaction_cmd, error_stop_mode, 0);
+ tex_primitive(tex_command, "nonstopmode", set_interaction_cmd, nonstop_mode, 0);
+ tex_primitive(tex_command, "scrollmode", set_interaction_cmd, scroll_mode, 0);
+
+ tex_primitive(tex_command, "chardef", shorthand_def_cmd, char_def_code, 0);
+ tex_primitive(tex_command, "countdef", shorthand_def_cmd, count_def_code, 0);
+ tex_primitive(tex_command, "dimendef", shorthand_def_cmd, dimen_def_code, 0);
+ tex_primitive(tex_command, "mathchardef", shorthand_def_cmd, math_char_def_code, 0);
+ tex_primitive(tex_command, "muskipdef", shorthand_def_cmd, mu_skip_def_code, 0);
+ tex_primitive(tex_command, "skipdef", shorthand_def_cmd, skip_def_code, 0);
+ tex_primitive(tex_command, "toksdef", shorthand_def_cmd, toks_def_code, 0);
+ /* tex_primitive(tex_command, "stringdef", shorthand_def_cmd, string_def_code, 0); */
+ tex_primitive(luatex_command, "Umathchardef", shorthand_def_cmd, math_xchar_def_code, 0);
+ tex_primitive(luatex_command, "Umathdictdef", shorthand_def_cmd, math_dchar_def_code, 0);
+ /* tex_primitive(luatex_command, "Umathcharnumdef", shorthand_def_cmd, math_uchar_def_code, 0); */
+ tex_primitive(luatex_command, "attributedef", shorthand_def_cmd, attribute_def_code, 0);
+ tex_primitive(luatex_command, "luadef", shorthand_def_cmd, lua_def_code, 0);
+ tex_primitive(luatex_command, "integerdef", shorthand_def_cmd, integer_def_code, 0);
+ tex_primitive(luatex_command, "dimensiondef", shorthand_def_cmd, dimension_def_code, 0);
+ tex_primitive(luatex_command, "gluespecdef", shorthand_def_cmd, gluespec_def_code, 0);
+ tex_primitive(luatex_command, "mugluespecdef", shorthand_def_cmd, mugluespec_def_code, 0);
+ /* tex_primitive(luatex_command, "mathspecdef", shorthand_def_cmd, mathspec_def_code, 0); */
+ tex_primitive(luatex_command, "fontspecdef", shorthand_def_cmd, fontspec_def_code, 0);
+
+ tex_primitive(tex_command, "noindent", begin_paragraph_cmd, noindent_par_code, 0);
+ tex_primitive(tex_command, "indent", begin_paragraph_cmd, indent_par_code, 0);
+ tex_primitive(luatex_command, "quitvmode", begin_paragraph_cmd, quitvmode_par_code, 0);
+ tex_primitive(luatex_command, "undent", begin_paragraph_cmd, undent_par_code, 0);
+ tex_primitive(luatex_command, "snapshotpar", begin_paragraph_cmd, snapshot_par_code, 0);
+ tex_primitive(luatex_command, "parattribute", begin_paragraph_cmd, attribute_par_code, 0);
+ tex_primitive(luatex_command, "wrapuppar", begin_paragraph_cmd, wrapup_par_code, 0);
+
+ tex_primitive(tex_command, "end", end_job_cmd, end_code, 0);
+ tex_primitive(tex_command, "dump", end_job_cmd, dump_code, 0);
+
+ tex_primitive(luatex_command, "beginlocalcontrol", begin_local_cmd, local_control_begin_code, 0);
+ tex_primitive(luatex_command, "localcontrol", begin_local_cmd, local_control_token_code, 0);
+ tex_primitive(luatex_command, "localcontrolled", begin_local_cmd, local_control_list_code, 0);
+ tex_primitive(luatex_command, "localcontrolledloop", begin_local_cmd, local_control_loop_code, 0);
+ tex_primitive(luatex_command, "expandedloop", begin_local_cmd, expanded_loop_code, 0);
+ tex_primitive(luatex_command, "unexpandedloop", begin_local_cmd, unexpanded_loop_code, 0);
+
+ tex_primitive(luatex_command, "endlocalcontrol", end_local_cmd, normal_code, 0);
+
+ tex_primitive(tex_command, "unhbox", un_hbox_cmd, box_code, 0);
+ tex_primitive(tex_command, "unhcopy", un_hbox_cmd, copy_code, 0);
+ tex_primitive(luatex_command, "unhpack", un_hbox_cmd, unpack_code, 0);
+ tex_primitive(tex_command, "unvbox", un_vbox_cmd, box_code, 0);
+ tex_primitive(tex_command, "unvcopy", un_vbox_cmd, copy_code, 0);
+ tex_primitive(luatex_command, "unvpack", un_vbox_cmd, unpack_code, 0);
+
+ tex_primitive(etex_command, "pagediscards", un_vbox_cmd, last_box_code, 0);
+ tex_primitive(etex_command, "splitdiscards", un_vbox_cmd, vsplit_code, 0);
+
+ tex_primitive(luatex_command, "insertunbox", un_vbox_cmd, insert_box_code, 0);
+ tex_primitive(luatex_command, "insertuncopy", un_vbox_cmd, insert_copy_code, 0);
+
+ tex_primitive(tex_command, "raise", vmove_cmd, move_backward_code, 0);
+ tex_primitive(tex_command, "lower", vmove_cmd, move_forward_code, 0);
+
+ tex_primitive(tex_command, "vfil", vskip_cmd, fil_code, 0);
+ tex_primitive(tex_command, "vfill", vskip_cmd, fill_code, 0);
+ tex_primitive(tex_command, "vfilneg", vskip_cmd, fil_neg_code, 0);
+ tex_primitive(tex_command, "vskip", vskip_cmd, skip_code, 0);
+ tex_primitive(tex_command, "vss", vskip_cmd, filll_code, 0);
+
+ tex_primitive(tex_command, "show", xray_cmd, show_code, 0);
+ tex_primitive(tex_command, "showbox", xray_cmd, show_box_code, 0);
+ tex_primitive(tex_command, "showthe", xray_cmd, show_the_code, 0);
+ tex_primitive(tex_command, "showlists", xray_cmd, show_lists_code, 0);
+ tex_primitive(etex_command, "showgroups", xray_cmd, show_groups_code, 0);
+ tex_primitive(etex_command, "showtokens", xray_cmd, show_tokens_code, 0);
+ tex_primitive(etex_command, "showifs", xray_cmd, show_ifs_code, 0);
+
+ tex_primitive(luatex_command, "savecatcodetable", catcode_table_cmd, save_cat_code_table_code, 0);
+ tex_primitive(luatex_command, "initcatcodetable", catcode_table_cmd, init_cat_code_table_code, 0);
+ /* tex_primitive(luatex_command, "setcatcodetabledefault", catcode_table_cmd, dflt_cat_code_table_code, 0); */ /* This was an experiment. */
+
+ tex_primitive(luatex_command, "pardirection", internal_int_cmd, par_direction_code, internal_int_base);
+ tex_primitive(luatex_command, "textdirection", internal_int_cmd, text_direction_code, internal_int_base);
+ tex_primitive(luatex_command, "mathdirection", internal_int_cmd, math_direction_code, internal_int_base);
+ tex_primitive(luatex_command, "linedirection", internal_int_cmd, line_direction_code, internal_int_base);
+
+ tex_primitive(luatex_command, "alignmark", parameter_cmd, normal_code, 0);
+ tex_primitive(luatex_command, "parametermark", parameter_cmd, normal_code, 0); /* proper primitive for syntax highlighting */
+
+ tex_primitive(luatex_command, "aligntab", alignment_tab_cmd, tab_mark_code, 0);
+
+ tex_primitive(tex_command, "span", alignment_cmd, span_code, 0);
+ tex_primitive(tex_command, "omit", alignment_cmd, omit_code, 0);
+ tex_primitive(tex_command, "noalign", alignment_cmd, no_align_code, 0);
+ tex_primitive(luatex_command, "aligncontent", alignment_cmd, align_content_code, 0);
+ /* tex_primitive(tex_command, "cr", alignment_cmd, cr_code, 0); */
+ /* tex_primitive(tex_command, "crcr", alignment_cmd, cr_cr_code, 0); */
+
+ tex_primitive(tex_command, "nonscript", math_script_cmd, math_no_script_code, 0);
+ tex_primitive(luatex_command, "noatomruling", math_script_cmd, math_no_ruling_code, 0);
+ tex_primitive(luatex_command, "Usuperscript", math_script_cmd, math_super_script_code, 0);
+ tex_primitive(luatex_command, "Usubscript", math_script_cmd, math_sub_script_code, 0);
+ tex_primitive(luatex_command, "Usuperprescript", math_script_cmd, math_super_pre_script_code, 0);
+ tex_primitive(luatex_command, "Usubprescript", math_script_cmd, math_sub_pre_script_code, 0);
+ tex_primitive(luatex_command, "Unosuperscript", math_script_cmd, math_no_super_script_code, 0);
+ tex_primitive(luatex_command, "Unosubscript", math_script_cmd, math_no_sub_script_code, 0);
+ tex_primitive(luatex_command, "Unosuperprescript", math_script_cmd, math_no_super_pre_script_code, 0);
+ tex_primitive(luatex_command, "Unosubprescript", math_script_cmd, math_no_sub_pre_script_code, 0);
+ tex_primitive(luatex_command, "Ushiftedsubscript", math_script_cmd, math_shifted_sub_script_code, 0);
+ tex_primitive(luatex_command, "Ushiftedsuperscript", math_script_cmd, math_shifted_super_script_code, 0);
+ tex_primitive(luatex_command, "Ushiftedsubprescript", math_script_cmd, math_shifted_sub_pre_script_code, 0);
+ tex_primitive(luatex_command, "Ushiftedsuperprescript", math_script_cmd, math_shifted_super_pre_script_code, 0);
+ tex_primitive(luatex_command, "Uprimescript", math_script_cmd, math_prime_script_code, 0);
+
+ /* tex_primitive(luatex_command, "Umathbinbinspacing", set_math_parameter_cmd, math_parameter_binary_binary_spacing, 0); */ /* Gone, as are more of these! */
+
+ tex_primitive(luatex_command, "Umathaxis", set_math_parameter_cmd, math_parameter_axis, 0);
+ tex_primitive(luatex_command, "Umathaccentbaseheight", set_math_parameter_cmd, math_parameter_accent_base_height, 0);
+ tex_primitive(luatex_command, "Umathaccentbasedepth", set_math_parameter_cmd, math_parameter_accent_base_depth, 0);
+ tex_primitive(luatex_command, "Umathflattenedaccentbaseheight", set_math_parameter_cmd, math_parameter_flattened_accent_base_height, 0);
+ tex_primitive(luatex_command, "Umathflattenedaccentbasedepth", set_math_parameter_cmd, math_parameter_flattened_accent_base_depth, 0);
+ tex_primitive(luatex_command, "Umathconnectoroverlapmin", set_math_parameter_cmd, math_parameter_connector_overlap_min, 0);
+ tex_primitive(luatex_command, "Umathfractiondelsize", set_math_parameter_cmd, math_parameter_fraction_del_size, 0);
+ tex_primitive(luatex_command, "Umathfractiondenomdown", set_math_parameter_cmd, math_parameter_fraction_denom_down, 0);
+ tex_primitive(luatex_command, "Umathfractiondenomvgap", set_math_parameter_cmd, math_parameter_fraction_denom_vgap, 0);
+ tex_primitive(luatex_command, "Umathfractionnumup", set_math_parameter_cmd, math_parameter_fraction_num_up, 0);
+ tex_primitive(luatex_command, "Umathfractionnumvgap", set_math_parameter_cmd, math_parameter_fraction_num_vgap, 0);
+ tex_primitive(luatex_command, "Umathfractionrule", set_math_parameter_cmd, math_parameter_fraction_rule, 0);
+ tex_primitive(luatex_command, "Umathlimitabovebgap", set_math_parameter_cmd, math_parameter_limit_above_bgap, 0);
+ tex_primitive(luatex_command, "Umathlimitabovekern", set_math_parameter_cmd, math_parameter_limit_above_kern, 0);
+ tex_primitive(luatex_command, "Umathlimitabovevgap", set_math_parameter_cmd, math_parameter_limit_above_vgap, 0);
+ tex_primitive(luatex_command, "Umathlimitbelowbgap", set_math_parameter_cmd, math_parameter_limit_below_bgap, 0);
+ tex_primitive(luatex_command, "Umathlimitbelowkern", set_math_parameter_cmd, math_parameter_limit_below_kern, 0);
+ tex_primitive(luatex_command, "Umathlimitbelowvgap", set_math_parameter_cmd, math_parameter_limit_below_vgap, 0);
+ tex_primitive(luatex_command, "Umathnolimitsubfactor", set_math_parameter_cmd, math_parameter_nolimit_sub_factor, 0); /* These are bonus parameters. */
+ tex_primitive(luatex_command, "Umathnolimitsupfactor", set_math_parameter_cmd, math_parameter_nolimit_sup_factor, 0); /* These are bonus parameters. */
+ tex_primitive(luatex_command, "Umathoperatorsize", set_math_parameter_cmd, math_parameter_operator_size, 0);
+ tex_primitive(luatex_command, "Umathoverbarkern", set_math_parameter_cmd, math_parameter_overbar_kern, 0);
+ tex_primitive(luatex_command, "Umathoverbarrule", set_math_parameter_cmd, math_parameter_overbar_rule, 0);
+ tex_primitive(luatex_command, "Umathoverbarvgap", set_math_parameter_cmd, math_parameter_overbar_vgap, 0);
+ tex_primitive(luatex_command, "Umathoverdelimiterbgap", set_math_parameter_cmd, math_parameter_over_delimiter_bgap, 0);
+ tex_primitive(luatex_command, "Umathoverdelimitervgap", set_math_parameter_cmd, math_parameter_over_delimiter_vgap, 0);
+ tex_primitive(luatex_command, "Umathquad", set_math_parameter_cmd, math_parameter_quad, 0);
+ tex_primitive(luatex_command, "Umathradicaldegreeafter", set_math_parameter_cmd, math_parameter_radical_degree_after, 0);
+ tex_primitive(luatex_command, "Umathradicaldegreebefore", set_math_parameter_cmd, math_parameter_radical_degree_before, 0);
+ tex_primitive(luatex_command, "Umathradicaldegreeraise", set_math_parameter_cmd, math_parameter_radical_degree_raise, 0);
+ tex_primitive(luatex_command, "Umathradicalextensibleafter", set_math_parameter_cmd, math_parameter_radical_extensible_after, 0);
+ tex_primitive(luatex_command, "Umathradicalextensiblebefore", set_math_parameter_cmd, math_parameter_radical_extensible_before, 0);
+ tex_primitive(luatex_command, "Umathradicalkern", set_math_parameter_cmd, math_parameter_radical_kern, 0);
+ tex_primitive(luatex_command, "Umathradicalrule", set_math_parameter_cmd, math_parameter_radical_rule, 0);
+ tex_primitive(luatex_command, "Umathradicalvgap", set_math_parameter_cmd, math_parameter_radical_vgap, 0);
+ tex_primitive(luatex_command, "Umathskewedfractionhgap", set_math_parameter_cmd, math_parameter_skewed_fraction_hgap, 0);
+ tex_primitive(luatex_command, "Umathskewedfractionvgap", set_math_parameter_cmd, math_parameter_skewed_fraction_vgap, 0);
+ tex_primitive(luatex_command, "Umathspacebeforescript", set_math_parameter_cmd, math_parameter_space_before_script, 0);
+ tex_primitive(luatex_command, "Umathspaceafterscript", set_math_parameter_cmd, math_parameter_space_after_script, 0);
+ tex_primitive(luatex_command, "Umathstackdenomdown", set_math_parameter_cmd, math_parameter_stack_denom_down, 0);
+ tex_primitive(luatex_command, "Umathstacknumup", set_math_parameter_cmd, math_parameter_stack_num_up, 0);
+ tex_primitive(luatex_command, "Umathstackvgap", set_math_parameter_cmd, math_parameter_stack_vgap, 0);
+ tex_primitive(luatex_command, "Umathsubshiftdown", set_math_parameter_cmd, math_parameter_subscript_shift_down, 0);
+ tex_primitive(luatex_command, "Umathsubshiftdrop", set_math_parameter_cmd, math_parameter_subscript_shift_drop, 0);
+ tex_primitive(luatex_command, "Umathsubsupshiftdown", set_math_parameter_cmd, math_parameter_subscript_superscript_shift_down, 0);
+ tex_primitive(luatex_command, "Umathsubsupvgap", set_math_parameter_cmd, math_parameter_subscript_superscript_vgap, 0);
+ tex_primitive(luatex_command, "Umathsubtopmax", set_math_parameter_cmd, math_parameter_subscript_top_max, 0);
+ tex_primitive(luatex_command, "Umathsupbottommin", set_math_parameter_cmd, math_parameter_superscript_bottom_min, 0);
+ tex_primitive(luatex_command, "Umathsupshiftdrop", set_math_parameter_cmd, math_parameter_superscript_shift_drop, 0);
+ tex_primitive(luatex_command, "Umathsupshiftup", set_math_parameter_cmd, math_parameter_superscript_shift_up, 0);
+ tex_primitive(luatex_command, "Umathsupsubbottommax", set_math_parameter_cmd, math_parameter_superscript_subscript_bottom_max, 0);
+ tex_primitive(luatex_command, "Umathunderbarkern", set_math_parameter_cmd, math_parameter_underbar_kern, 0);
+ tex_primitive(luatex_command, "Umathunderbarrule", set_math_parameter_cmd, math_parameter_underbar_rule, 0);
+ tex_primitive(luatex_command, "Umathunderbarvgap", set_math_parameter_cmd, math_parameter_underbar_vgap, 0);
+ tex_primitive(luatex_command, "Umathunderdelimiterbgap", set_math_parameter_cmd, math_parameter_under_delimiter_bgap, 0);
+ tex_primitive(luatex_command, "Umathunderdelimitervgap", set_math_parameter_cmd, math_parameter_under_delimiter_vgap, 0);
+ tex_primitive(luatex_command, "Umathxscale", set_math_parameter_cmd, math_parameter_x_scale, 0);
+ tex_primitive(luatex_command, "Umathyscale", set_math_parameter_cmd, math_parameter_y_scale, 0);
+ /* */
+ tex_primitive(luatex_command, "Umathextrasupshift", set_math_parameter_cmd, math_parameter_extra_superscript_shift, 0);
+ tex_primitive(luatex_command, "Umathextrasubshift", set_math_parameter_cmd, math_parameter_extra_subscript_shift, 0);
+ tex_primitive(luatex_command, "Umathextrasuppreshift", set_math_parameter_cmd, math_parameter_extra_superprescript_shift, 0);
+ tex_primitive(luatex_command, "Umathextrasubpreshift", set_math_parameter_cmd, math_parameter_extra_subprescript_shift, 0);
+ /* */
+ tex_primitive(luatex_command, "Umathprimeraise", set_math_parameter_cmd, math_parameter_prime_raise, 0);
+ tex_primitive(luatex_command, "Umathprimeraisecomposed", set_math_parameter_cmd, math_parameter_prime_raise_composed, 0);
+ tex_primitive(luatex_command, "Umathprimeshiftup", set_math_parameter_cmd, math_parameter_prime_shift_up, 0);
+ tex_primitive(luatex_command, "Umathprimeshiftdrop", set_math_parameter_cmd, math_parameter_prime_shift_drop, 0);
+ tex_primitive(luatex_command, "Umathprimespaceafter", set_math_parameter_cmd, math_parameter_prime_space_after, 0);
+ tex_primitive(luatex_command, "Umathprimewidth", set_math_parameter_cmd, math_parameter_prime_width, 0);
+ /* */
+ tex_primitive(luatex_command, "Umathruleheight", set_math_parameter_cmd, math_parameter_rule_height, 0);
+ tex_primitive(luatex_command, "Umathruledepth", set_math_parameter_cmd, math_parameter_rule_depth, 0);
+ /* */
+ tex_primitive(luatex_command, "Umathsupshiftdistance", set_math_parameter_cmd, math_parameter_superscript_shift_distance, 0);
+ tex_primitive(luatex_command, "Umathsubshiftdistance", set_math_parameter_cmd, math_parameter_subscript_shift_distance, 0);
+ tex_primitive(luatex_command, "Umathpresupshiftdistance", set_math_parameter_cmd, math_parameter_superprescript_shift_distance, 0);
+ tex_primitive(luatex_command, "Umathpresubshiftdistance", set_math_parameter_cmd, math_parameter_subprescript_shift_distance, 0);
+ /* */
+ tex_primitive(luatex_command, "Umathextrasupspace", set_math_parameter_cmd, math_parameter_extra_superscript_space, 0);
+ tex_primitive(luatex_command, "Umathextrasubspace", set_math_parameter_cmd, math_parameter_extra_subscript_space, 0);
+ tex_primitive(luatex_command, "Umathextrasupprespace", set_math_parameter_cmd, math_parameter_extra_superprescript_space, 0);
+ tex_primitive(luatex_command, "Umathextrasubprespace", set_math_parameter_cmd, math_parameter_extra_subprescript_space, 0);
+ /* */
+ tex_primitive(luatex_command, "Umathskeweddelimitertolerance", set_math_parameter_cmd, math_parameter_skewed_delimiter_tolerance, 0);
+ /* */
+ tex_primitive(luatex_command, "Umathaccenttopshiftup", set_math_parameter_cmd, math_parameter_accent_top_shift_up, 0);
+ tex_primitive(luatex_command, "Umathaccentbottomshiftdown", set_math_parameter_cmd, math_parameter_accent_bottom_shift_down, 0);
+ tex_primitive(luatex_command, "Umathflattenedaccenttopshiftup", set_math_parameter_cmd, math_parameter_flattened_accent_top_shift_up, 0);
+ tex_primitive(luatex_command, "Umathflattenedaccentbottomshiftdown", set_math_parameter_cmd, math_parameter_flattened_accent_bottom_shift_down, 0);
+ tex_primitive(luatex_command, "Umathaccenttopovershoot", set_math_parameter_cmd, math_parameter_accent_top_overshoot, 0);
+ tex_primitive(luatex_command, "Umathaccentbottomovershoot", set_math_parameter_cmd, math_parameter_accent_bottom_overshoot, 0);
+ tex_primitive(luatex_command, "Umathaccentsuperscriptdrop", set_math_parameter_cmd, math_parameter_accent_superscript_drop, 0);
+ tex_primitive(luatex_command, "Umathaccentsuperscriptpercent", set_math_parameter_cmd, math_parameter_accent_superscript_percent, 0);
+ tex_primitive(luatex_command, "Umathaccentextendmargin", set_math_parameter_cmd, math_parameter_accent_extend_margin, 0);
+ /* */
+ tex_primitive(luatex_command, "Umathdelimiterpercent", set_math_parameter_cmd, math_parameter_delimiter_percent, 0);
+ tex_primitive(luatex_command, "Umathdelimitershortfall", set_math_parameter_cmd, math_parameter_delimiter_shortfall, 0);
+ /* */
+ tex_primitive(luatex_command, "Umathoverlinevariant", set_math_parameter_cmd, math_parameter_over_line_variant, 0);
+ tex_primitive(luatex_command, "Umathunderlinevariant", set_math_parameter_cmd, math_parameter_under_line_variant, 0);
+ tex_primitive(luatex_command, "Umathoverdelimitervariant", set_math_parameter_cmd, math_parameter_over_delimiter_variant, 0);
+ tex_primitive(luatex_command, "Umathunderdelimitervariant", set_math_parameter_cmd, math_parameter_under_delimiter_variant, 0);
+ tex_primitive(luatex_command, "Umathdelimiterovervariant", set_math_parameter_cmd, math_parameter_delimiter_over_variant, 0);
+ tex_primitive(luatex_command, "Umathdelimiterundervariant", set_math_parameter_cmd, math_parameter_delimiter_under_variant, 0);
+ tex_primitive(luatex_command, "Umathhextensiblevariant", set_math_parameter_cmd, math_parameter_h_extensible_variant, 0);
+ tex_primitive(luatex_command, "Umathvextensiblevariant", set_math_parameter_cmd, math_parameter_v_extensible_variant, 0);
+ tex_primitive(luatex_command, "Umathfractionvariant", set_math_parameter_cmd, math_parameter_fraction_variant, 0);
+ tex_primitive(luatex_command, "Umathradicalvariant", set_math_parameter_cmd, math_parameter_radical_variant, 0);
+ tex_primitive(luatex_command, "Umathdegreevariant", set_math_parameter_cmd, math_parameter_accent_variant, 0);
+ tex_primitive(luatex_command, "Umathaccentvariant", set_math_parameter_cmd, math_parameter_degree_variant, 0);
+ tex_primitive(luatex_command, "Umathtopaccentvariant", set_math_parameter_cmd, math_parameter_top_accent_variant, 0);
+ tex_primitive(luatex_command, "Umathbottomaccentvariant", set_math_parameter_cmd, math_parameter_bottom_accent_variant, 0);
+ tex_primitive(luatex_command, "Umathoverlayaccentvariant", set_math_parameter_cmd, math_parameter_overlay_accent_variant, 0);
+ tex_primitive(luatex_command, "Umathnumeratorvariant", set_math_parameter_cmd, math_parameter_numerator_variant, 0);
+ tex_primitive(luatex_command, "Umathdenominatorvariant", set_math_parameter_cmd, math_parameter_denominator_variant, 0);
+ tex_primitive(luatex_command, "Umathsuperscriptvariant", set_math_parameter_cmd, math_parameter_superscript_variant, 0);
+ tex_primitive(luatex_command, "Umathsubscriptvariant", set_math_parameter_cmd, math_parameter_subscript_variant, 0);
+ tex_primitive(luatex_command, "Umathprimevariant", set_math_parameter_cmd, math_parameter_prime_variant, 0);
+ tex_primitive(luatex_command, "Umathstackvariant", set_math_parameter_cmd, math_parameter_stack_variant, 0);
+
+ tex_primitive(luatex_command, "resetmathspacing", set_math_parameter_cmd, math_parameter_reset_spacing, 0);
+ tex_primitive(luatex_command, "setmathspacing", set_math_parameter_cmd, math_parameter_set_spacing, 0);
+ tex_primitive(luatex_command, "letmathspacing", set_math_parameter_cmd, math_parameter_let_spacing, 0);
+ tex_primitive(luatex_command, "copymathspacing", set_math_parameter_cmd, math_parameter_copy_spacing, 0);
+ tex_primitive(luatex_command, "letmathparent", set_math_parameter_cmd, math_parameter_let_parent, 0);
+ tex_primitive(luatex_command, "copymathparent", set_math_parameter_cmd, math_parameter_copy_parent, 0);
+ tex_primitive(luatex_command, "setmathprepenalty", set_math_parameter_cmd, math_parameter_set_pre_penalty, 0);
+ tex_primitive(luatex_command, "setmathpostpenalty", set_math_parameter_cmd, math_parameter_set_post_penalty, 0);
+ tex_primitive(luatex_command, "setmathatomrule", set_math_parameter_cmd, math_parameter_set_atom_rule, 0);
+ tex_primitive(luatex_command, "setmathdisplayprepenalty", set_math_parameter_cmd, math_parameter_set_display_pre_penalty, 0);
+ tex_primitive(luatex_command, "setmathdisplaypostpenalty", set_math_parameter_cmd, math_parameter_set_display_post_penalty, 0);
+ tex_primitive(luatex_command, "letmathatomrule", set_math_parameter_cmd, math_parameter_let_atom_rule, 0);
+ tex_primitive(luatex_command, "copymathatomrule", set_math_parameter_cmd, math_parameter_copy_atom_rule, 0);
+ tex_primitive(luatex_command, "setmathignore", set_math_parameter_cmd, math_parameter_ignore, 0);
+ tex_primitive(luatex_command, "setmathoptions", set_math_parameter_cmd, math_parameter_options, 0);
+ tex_primitive(luatex_command, "setdefaultmathcodes", set_math_parameter_cmd, math_parameter_set_defaults, 0);
+
+ /*tex
+
+ A bunch of commands that need a special treatment, so we delayed their initialization.
+ They are in the above list but commented. We start with those that alias to (already
+ defined) primitives. Actually we can say something like:
+
+ \starttyping
+ primitive(tex_command, "fi", if_test_cmd, fi_code, 0);
+ cs_text(deep_frozen_cs_fi_code) = maketexstring("fi");
+ copy_eqtb_entry(deep_frozen_cs_fi_code, cur_val);
+ \stoptyping
+
+ but we use a helper that does a primitive lookup and shares the already allocated
+ string. The effect is the same but it adds a little abstraction and saves a few
+ redundant strings.
+
+ */
+
+ tex_primitive(tex_command, "par", end_paragraph_cmd, normal_end_paragraph_code, 0); /* |too_big_char| */
+ tex_primitive(no_command, "insertedpar", end_paragraph_cmd, inserted_end_paragraph_code, 0);
+ tex_primitive(no_command, "newlinepar", end_paragraph_cmd, new_line_end_paragraph_code, 0);
+
+ /* tex_primitive(luatex_command, "linepar", undefined_cs_cmd, 0, 0); */ /*tex A user can define this one.*/
+
+ tex_primitive(tex_command, "endgroup", end_group_cmd, semi_simple_group_code, 0);
+ tex_primitive(luatex_command, "endsimplegroup", end_group_cmd, also_simple_group_code, 0);
+ tex_primitive(luatex_command, "endmathgroup", end_group_cmd, math_simple_group_code, 0);
+
+ tex_primitive(tex_command, "relax", relax_cmd, relax_code, 0);
+ tex_primitive(luatex_command, "norelax", relax_cmd, no_relax_code, 0);
+ tex_primitive(no_command, "noexpandrelax", relax_cmd, no_expand_relax_code, 0);
+
+ tex_primitive(tex_command, "fi", if_test_cmd, fi_code, 0);
+ tex_primitive(no_command, "noif", if_test_cmd, no_if_code, 0);
+
+ tex_primitive(no_command, "always", prefix_cmd, always_code, 0);
+
+ tex_primitive(tex_command, "nullfont", set_font_cmd, null_font, 0);
+
+ tex_primitive(tex_command, "crcr", alignment_cmd, cr_cr_code, 0);
+ tex_primitive(tex_command, "cr", alignment_cmd, cr_code, 0);
+
+ tex_aux_copy_deep_frozen_from_primitive(deep_frozen_cs_end_group_code, "endgroup");
+ tex_aux_copy_deep_frozen_from_primitive(deep_frozen_cs_relax_code, "relax");
+ tex_aux_copy_deep_frozen_from_primitive(deep_frozen_cs_fi_code, "fi");
+ tex_aux_copy_deep_frozen_from_primitive(deep_frozen_cs_no_if_code, "noif");
+ tex_aux_copy_deep_frozen_from_primitive(deep_frozen_cs_always_code, "always");
+ tex_aux_copy_deep_frozen_from_primitive(deep_frozen_cs_right_code, "right");
+ tex_aux_copy_deep_frozen_from_primitive(deep_frozen_cs_null_font_code, "nullfont");
+ tex_aux_copy_deep_frozen_from_primitive(deep_frozen_cs_cr_code, "cr");
+
+ lmt_token_state.par_loc = tex_prim_lookup(tex_located_string("par"));
+ lmt_token_state.par_token = cs_token_flag + lmt_token_state.par_loc;
+
+ /* lmt_token_state.line_par_loc = tex_prim_lookup(tex_located_string("linepar")); */
+ /* lmt_token_state.line_par_token = cs_token_flag + lmt_token_state.line_par_loc; */
+
+ /*tex
+ These don't alias to existing commands. They are all inaccessible but might show up in
+ error messages and tracing. We could set the flags to resticted values. We need to
+ intercept them in the function that prints the |chr| because they can be out of range.
+ */
+
+ cs_text(deep_frozen_cs_end_template_1_code) = tex_maketexstring("endtemplate");
+ set_eq_type(deep_frozen_cs_end_template_1_code, deep_frozen_end_template_cmd);
+ set_eq_flag(deep_frozen_cs_end_template_1_code, 0);
+ set_eq_value(deep_frozen_cs_end_template_1_code, lmt_token_state.null_list);
+ set_eq_level(deep_frozen_cs_end_template_1_code, level_one);
+
+ cs_text(deep_frozen_cs_end_template_2_code) = tex_maketexstring("endtemplate");
+ set_eq_type(deep_frozen_cs_end_template_2_code, end_template_cmd);
+ set_eq_flag(deep_frozen_cs_end_template_2_code, 0);
+ set_eq_value(deep_frozen_cs_end_template_2_code, lmt_token_state.null_list);
+ set_eq_level(deep_frozen_cs_end_template_2_code, level_one);
+
+ cs_text(deep_frozen_cs_dont_expand_code) = tex_maketexstring("notexpanded");
+ set_eq_type(deep_frozen_cs_dont_expand_code, deep_frozen_dont_expand_cmd);
+ set_eq_flag(deep_frozen_cs_dont_expand_code, 0);
+
+ cs_text(deep_frozen_cs_protection_code) = tex_maketexstring("inaccessible");
+
+ cs_text(deep_frozen_cs_end_write_code) = tex_maketexstring("endwrite");
+ set_eq_level(deep_frozen_cs_end_write_code, level_one);
+ set_eq_type(deep_frozen_cs_end_write_code, call_cmd);
+ set_eq_flag(deep_frozen_cs_end_write_code, 0);
+ set_eq_value(deep_frozen_cs_end_write_code, null);
+
+ lmt_string_pool_state.reserved = lmt_string_pool_state.string_pool_data.ptr;
+ lmt_hash_state.no_new_cs = 1;
+
+ }
+}