/* tectonic_xetex_format engine header for version 33 */ /* This file is automatically generated by the `xetex_format` `emit` example. Do not modify. */ #ifndef __TECTONIC_XETEX_FORMAT_ENGINE_HEADER__ #define __TECTONIC_XETEX_FORMAT_ENGINE_HEADER__ #undef IGNORE /* Windows OS headers sometimes define this */ /* The format version associated with these symbols. */ #define TECTONIC_FORMAT_VERSION 33 /* = 0x21 */ /* Parameters associated with the multiletter control string hash table. */ #define HASH_SIZE 15000 /* = 0x3a98 */ #define HASH_EXTRA 600000 /* = 0x927c0 */ #define HASH_OFFSET 514 /* = 0x202 */ #define HASH_PRIME 8501 /* = 0x2135 */ /* Constants associated with "characters" (namely, Unicode Scalar Values). */ #define TOO_BIG_USV 1114112 /* = 0x110000 */ #define SPECIAL_CHAR 1114113 /* = 0x110001 */ /* Fixed array sizes. */ #define PRIM_SIZE 2100 /* = 0x834 */ #define PRIM_PRIME 1777 /* = 0x6f1 */ #define MAX_FONT_MAX 9000 /* = 0x2328 */ #define MEM_TOP 4999999 /* = 0x4c4b3f */ #define NUMBER_MATH_FAMILIES 256 /* = 0x100 */ /* Offsets for the integer parameters. */ #define INT_PAR__pretolerance 0 /* = 0x0 */ #define INT_PAR__tolerance 1 /* = 0x1 */ #define INT_PAR__line_penalty 2 /* = 0x2 */ #define INT_PAR__hyphen_penalty 3 /* = 0x3 */ #define INT_PAR__ex_hyphen_penalty 4 /* = 0x4 */ #define INT_PAR__club_penalty 5 /* = 0x5 */ #define INT_PAR__widow_penalty 6 /* = 0x6 */ #define INT_PAR__display_widow_penalty 7 /* = 0x7 */ #define INT_PAR__broken_penalty 8 /* = 0x8 */ #define INT_PAR__bin_op_penalty 9 /* = 0x9 */ #define INT_PAR__rel_penalty 10 /* = 0xa */ #define INT_PAR__pre_display_penalty 11 /* = 0xb */ #define INT_PAR__post_display_penalty 12 /* = 0xc */ #define INT_PAR__inter_line_penalty 13 /* = 0xd */ #define INT_PAR__double_hyphen_demerits 14 /* = 0xe */ #define INT_PAR__final_hyphen_demerits 15 /* = 0xf */ #define INT_PAR__adj_demerits 16 /* = 0x10 */ #define INT_PAR__mag 17 /* = 0x11 */ #define INT_PAR__delimiter_factor 18 /* = 0x12 */ #define INT_PAR__looseness 19 /* = 0x13 */ #define INT_PAR__time 20 /* = 0x14 */ #define INT_PAR__day 21 /* = 0x15 */ #define INT_PAR__month 22 /* = 0x16 */ #define INT_PAR__year 23 /* = 0x17 */ #define INT_PAR__show_box_breadth 24 /* = 0x18 */ #define INT_PAR__show_box_depth 25 /* = 0x19 */ #define INT_PAR__hbadness 26 /* = 0x1a */ #define INT_PAR__vbadness 27 /* = 0x1b */ #define INT_PAR__pausing 28 /* = 0x1c */ #define INT_PAR__tracing_online 29 /* = 0x1d */ #define INT_PAR__tracing_macros 30 /* = 0x1e */ #define INT_PAR__tracing_stats 31 /* = 0x1f */ #define INT_PAR__tracing_paragraphs 32 /* = 0x20 */ #define INT_PAR__tracing_pages 33 /* = 0x21 */ #define INT_PAR__tracing_output 34 /* = 0x22 */ #define INT_PAR__tracing_lost_chars 35 /* = 0x23 */ #define INT_PAR__tracing_commands 36 /* = 0x24 */ #define INT_PAR__tracing_restores 37 /* = 0x25 */ #define INT_PAR__uc_hyph 38 /* = 0x26 */ #define INT_PAR__output_penalty 39 /* = 0x27 */ #define INT_PAR__max_dead_cycles 40 /* = 0x28 */ #define INT_PAR__hang_after 41 /* = 0x29 */ #define INT_PAR__floating_penalty 42 /* = 0x2a */ #define INT_PAR__global_defs 43 /* = 0x2b */ #define INT_PAR__cur_fam 44 /* = 0x2c */ #define INT_PAR__escape_char 45 /* = 0x2d */ #define INT_PAR__default_hyphen_char 46 /* = 0x2e */ #define INT_PAR__default_skew_char 47 /* = 0x2f */ #define INT_PAR__end_line_char 48 /* = 0x30 */ #define INT_PAR__new_line_char 49 /* = 0x31 */ #define INT_PAR__language 50 /* = 0x32 */ #define INT_PAR__left_hyphen_min 51 /* = 0x33 */ #define INT_PAR__right_hyphen_min 52 /* = 0x34 */ #define INT_PAR__holding_inserts 53 /* = 0x35 */ #define INT_PAR__error_context_lines 54 /* = 0x36 */ #define INT_PAR__tracing_stack_levels 55 /* = 0x37 */ #define INT_PAR__tracing_assigns 56 /* = 0x38 */ #define INT_PAR__tracing_groups 57 /* = 0x39 */ #define INT_PAR__tracing_ifs 58 /* = 0x3a */ #define INT_PAR__tracing_scan_tokens 59 /* = 0x3b */ #define INT_PAR__tracing_nesting 60 /* = 0x3c */ #define INT_PAR__pre_display_direction 61 /* = 0x3d */ #define INT_PAR__last_line_fit 62 /* = 0x3e */ #define INT_PAR__saving_vdiscards 63 /* = 0x3f */ #define INT_PAR__saving_hyph_codes 64 /* = 0x40 */ #define INT_PAR__suppress_fontnotfound_error 65 /* = 0x41 */ #define INT_PAR__xetex_linebreak_locale 66 /* = 0x42 */ #define INT_PAR__xetex_linebreak_penalty 67 /* = 0x43 */ #define INT_PAR__xetex_protrude_chars 68 /* = 0x44 */ #define INT_PAR__texxet 69 /* = 0x45 */ #define INT_PAR__xetex_dash_break 70 /* = 0x46 */ #define INT_PAR__xetex_upwards 71 /* = 0x47 */ #define INT_PAR__xetex_use_glyph_metrics 72 /* = 0x48 */ #define INT_PAR__xetex_inter_char_tokens 73 /* = 0x49 */ #define INT_PAR__xetex_input_normalization 74 /* = 0x4a */ #define INT_PAR__xetex_default_input_mode 75 /* = 0x4b */ #define INT_PAR__xetex_default_input_encoding 76 /* = 0x4c */ #define INT_PAR__xetex_tracing_fonts 77 /* = 0x4d */ #define INT_PAR__xetex_interword_space_shaping 78 /* = 0x4e */ #define INT_PAR__xetex_generate_actual_text 79 /* = 0x4f */ #define INT_PAR__xetex_hyphenatable_length 80 /* = 0x50 */ #define INT_PAR__synctex 81 /* = 0x51 */ #define INT_PAR__pdfoutput 82 /* = 0x52 */ #define INT_PARS 83 /* = 0x53 */ /* Offsets for the dimensional parameters. */ #define DIMEN_PAR__par_indent 0 /* = 0x0 */ #define DIMEN_PAR__math_surround 1 /* = 0x1 */ #define DIMEN_PAR__line_skip_limit 2 /* = 0x2 */ #define DIMEN_PAR__hsize 3 /* = 0x3 */ #define DIMEN_PAR__vsize 4 /* = 0x4 */ #define DIMEN_PAR__max_depth 5 /* = 0x5 */ #define DIMEN_PAR__split_max_depth 6 /* = 0x6 */ #define DIMEN_PAR__box_max_depth 7 /* = 0x7 */ #define DIMEN_PAR__hfuzz 8 /* = 0x8 */ #define DIMEN_PAR__vfuzz 9 /* = 0x9 */ #define DIMEN_PAR__delimiter_shortfall 10 /* = 0xa */ #define DIMEN_PAR__null_delimiter_space 11 /* = 0xb */ #define DIMEN_PAR__script_space 12 /* = 0xc */ #define DIMEN_PAR__pre_display_size 13 /* = 0xd */ #define DIMEN_PAR__display_width 14 /* = 0xe */ #define DIMEN_PAR__display_indent 15 /* = 0xf */ #define DIMEN_PAR__overfull_rule 16 /* = 0x10 */ #define DIMEN_PAR__hang_indent 17 /* = 0x11 */ #define DIMEN_PAR__h_offset 18 /* = 0x12 */ #define DIMEN_PAR__v_offset 19 /* = 0x13 */ #define DIMEN_PAR__emergency_stretch 20 /* = 0x14 */ #define DIMEN_PAR__pdf_page_width 21 /* = 0x15 */ #define DIMEN_PAR__pdf_page_height 22 /* = 0x16 */ #define DIMEN_PARS 23 /* = 0x17 */ /* Offsets for the glue parameters. */ #define GLUE_PAR__line_skip 0 /* = 0x0 */ #define GLUE_PAR__baseline_skip 1 /* = 0x1 */ #define GLUE_PAR__par_skip 2 /* = 0x2 */ #define GLUE_PAR__above_display_skip 3 /* = 0x3 */ #define GLUE_PAR__below_display_skip 4 /* = 0x4 */ #define GLUE_PAR__above_display_short_skip 5 /* = 0x5 */ #define GLUE_PAR__below_display_short_skip 6 /* = 0x6 */ #define GLUE_PAR__left_skip 7 /* = 0x7 */ #define GLUE_PAR__right_skip 8 /* = 0x8 */ #define GLUE_PAR__top_skip 9 /* = 0x9 */ #define GLUE_PAR__split_top_skip 10 /* = 0xa */ #define GLUE_PAR__tab_skip 11 /* = 0xb */ #define GLUE_PAR__space_skip 12 /* = 0xc */ #define GLUE_PAR__xspace_skip 13 /* = 0xd */ #define GLUE_PAR__par_fill_skip 14 /* = 0xe */ #define GLUE_PAR__xetex_linebreak_skip 15 /* = 0xf */ #define GLUE_PAR__thin_mu_skip 16 /* = 0x10 */ #define GLUE_PAR__med_mu_skip 17 /* = 0x11 */ #define GLUE_PAR__thick_mu_skip 18 /* = 0x12 */ #define GLUE_PARS 19 /* = 0x13 */ /* Offsets for the "local" parameters. */ #define LOCAL__par_shape 0 /* = 0x0 */ #define LOCAL__output_routine 1 /* = 0x1 */ #define LOCAL__every_par 2 /* = 0x2 */ #define LOCAL__every_math 3 /* = 0x3 */ #define LOCAL__every_display 4 /* = 0x4 */ #define LOCAL__every_hbox 5 /* = 0x5 */ #define LOCAL__every_vbox 6 /* = 0x6 */ #define LOCAL__every_job 7 /* = 0x7 */ #define LOCAL__every_cr 8 /* = 0x8 */ #define LOCAL__err_help 9 /* = 0x9 */ #define LOCAL__every_eof 10 /* = 0xa */ #define LOCAL__xetex_inter_char_toks 11 /* = 0xb */ #define LOCAL__tectonic_coda_tokens 12 /* = 0xc */ #define NUM_LOCALS 13 /* = 0xd */ /* Offsets for the e-TeX penalties parameters. */ #define ETEX_PENALTIES_PAR__inter_line_penalties 0 /* = 0x0 */ #define ETEX_PENALTIES_PAR__club_penalties 1 /* = 0x1 */ #define ETEX_PENALTIES_PAR__widow_penalties 2 /* = 0x2 */ #define ETEX_PENALTIES_PAR__display_widow_penalties 3 /* = 0x3 */ #define NUM_ETEX_PENALTIES 4 /* = 0x4 */ /* Offsets in the equivalents table. */ #define ACTIVE_BASE 1 /* = 0x1 */ #define SINGLE_BASE 1114113 /* = 0x110001 */ #define NULL_CS 2228225 /* = 0x220001 */ #define HASH_BASE 2228226 /* = 0x220002 */ #define FROZEN_CONTROL_SEQUENCE 2243226 /* = 0x223a9a */ #define PRIM_EQTB_BASE 2243238 /* = 0x223aa6 */ #define FROZEN_NULL_FONT 2245338 /* = 0x2242da */ #define UNDEFINED_CONTROL_SEQUENCE 2254339 /* = 0x226603 */ #define GLUE_BASE 2254340 /* = 0x226604 */ #define SKIP_BASE 2254359 /* = 0x226617 */ #define MU_SKIP_BASE 2254615 /* = 0x226717 */ #define LOCAL_BASE 2254871 /* = 0x226817 */ #define TOKS_BASE 2254884 /* = 0x226824 */ #define ETEX_PEN_BASE 2255140 /* = 0x226924 */ #define BOX_BASE 2255144 /* = 0x226928 */ #define CUR_FONT_LOC 2255400 /* = 0x226a28 */ #define MATH_FONT_BASE 2255401 /* = 0x226a29 */ #define CAT_CODE_BASE 2256169 /* = 0x226d29 */ #define LC_CODE_BASE 3370281 /* = 0x336d29 */ #define UC_CODE_BASE 4484393 /* = 0x446d29 */ #define SF_CODE_BASE 5598505 /* = 0x556d29 */ #define MATH_CODE_BASE 6712617 /* = 0x666d29 */ #define INT_BASE 7826729 /* = 0x776d29 */ #define COUNT_BASE 7826812 /* = 0x776d7c */ #define DEL_CODE_BASE 7827068 /* = 0x776e7c */ #define DIMEN_BASE 8941180 /* = 0x886e7c */ #define SCALED_BASE 8941203 /* = 0x886e93 */ #define EQTB_SIZE 8941458 /* = 0x886f92 */ #define EQTB_TOP 9541458 /* = 0x919752 */ /* Codes for core engine commands. */ #define RELAX 0 /* = 0x0 */ #define ESCAPE 0 /* = 0x0 */ #define LEFT_BRACE 1 /* = 0x1 */ #define RIGHT_BRACE 2 /* = 0x2 */ #define MATH_SHIFT 3 /* = 0x3 */ #define TAB_MARK 4 /* = 0x4 */ #define CAR_RET 5 /* = 0x5 */ #define OUT_PARAM 5 /* = 0x5 */ #define MAC_PARAM 6 /* = 0x6 */ #define SUP_MARK 7 /* = 0x7 */ #define SUB_MARK 8 /* = 0x8 */ #define ENDV 9 /* = 0x9 */ #define IGNORE 9 /* = 0x9 */ #define SPACER 10 /* = 0xa */ #define LETTER 11 /* = 0xb */ #define OTHER_CHAR 12 /* = 0xc */ #define PAR_END 13 /* = 0xd */ #define ACTIVE_CHAR 13 /* = 0xd */ #define MATCH 13 /* = 0xd */ #define STOP 14 /* = 0xe */ #define COMMENT 14 /* = 0xe */ #define END_MATCH 14 /* = 0xe */ #define DELIM_NUM 15 /* = 0xf */ #define INVALID_CHAR 15 /* = 0xf */ #define CHAR_NUM 16 /* = 0x10 */ #define MAX_CHAR_CODE 15 /* = 0xf */ #define MATH_CHAR_NUM 17 /* = 0x11 */ #define MARK 18 /* = 0x12 */ #define XRAY 19 /* = 0x13 */ #define MAKE_BOX 20 /* = 0x14 */ #define HMOVE 21 /* = 0x15 */ #define VMOVE 22 /* = 0x16 */ #define UN_HBOX 23 /* = 0x17 */ #define UN_VBOX 24 /* = 0x18 */ #define REMOVE_ITEM 25 /* = 0x19 */ #define HSKIP 26 /* = 0x1a */ #define VSKIP 27 /* = 0x1b */ #define MSKIP 28 /* = 0x1c */ #define KERN 29 /* = 0x1d */ #define MKERN 30 /* = 0x1e */ #define LEADER_SHIP 31 /* = 0x1f */ #define HALIGN 32 /* = 0x20 */ #define VALIGN 33 /* = 0x21 */ #define NO_ALIGN 34 /* = 0x22 */ #define VRULE 35 /* = 0x23 */ #define HRULE 36 /* = 0x24 */ #define INSERT 37 /* = 0x25 */ #define VADJUST 38 /* = 0x26 */ #define IGNORE_SPACES 39 /* = 0x27 */ #define AFTER_ASSIGNMENT 40 /* = 0x28 */ #define AFTER_GROUP 41 /* = 0x29 */ #define BREAK_PENALTY 42 /* = 0x2a */ #define START_PAR 43 /* = 0x2b */ #define ITAL_CORR 44 /* = 0x2c */ #define ACCENT 45 /* = 0x2d */ #define MATH_ACCENT 46 /* = 0x2e */ #define DISCRETIONARY 47 /* = 0x2f */ #define EQ_NO 48 /* = 0x30 */ #define LEFT_RIGHT 49 /* = 0x31 */ #define MATH_COMP 50 /* = 0x32 */ #define LIMIT_SWITCH 51 /* = 0x33 */ #define ABOVE 52 /* = 0x34 */ #define MATH_STYLE 53 /* = 0x35 */ #define MATH_CHOICE 54 /* = 0x36 */ #define NON_SCRIPT 55 /* = 0x37 */ #define VCENTER 56 /* = 0x38 */ #define CASE_SHIFT 57 /* = 0x39 */ #define MESSAGE 58 /* = 0x3a */ #define EXTENSION 59 /* = 0x3b */ #define IN_STREAM 60 /* = 0x3c */ #define BEGIN_GROUP 61 /* = 0x3d */ #define END_GROUP 62 /* = 0x3e */ #define OMIT 63 /* = 0x3f */ #define EX_SPACE 64 /* = 0x40 */ #define NO_BOUNDARY 65 /* = 0x41 */ #define RADICAL 66 /* = 0x42 */ #define END_CS_NAME 67 /* = 0x43 */ #define CHAR_GIVEN 68 /* = 0x44 */ #define MIN_INTERNAL 68 /* = 0x44 */ #define MATH_GIVEN 69 /* = 0x45 */ #define XETEX_MATH_GIVEN 70 /* = 0x46 */ #define LAST_ITEM 71 /* = 0x47 */ #define TOKS_REGISTER 72 /* = 0x48 */ #define MAX_NON_PREFIXED_COMMAND 71 /* = 0x47 */ #define ASSIGN_TOKS 73 /* = 0x49 */ #define ASSIGN_INT 74 /* = 0x4a */ #define ASSIGN_DIMEN 75 /* = 0x4b */ #define ASSIGN_GLUE 76 /* = 0x4c */ #define ASSIGN_MU_GLUE 77 /* = 0x4d */ #define ASSIGN_FONT_DIMEN 78 /* = 0x4e */ #define ASSIGN_FONT_INT 79 /* = 0x4f */ #define SET_AUX 80 /* = 0x50 */ #define SET_PREV_GRAF 81 /* = 0x51 */ #define SET_PAGE_DIMEN 82 /* = 0x52 */ #define SET_PAGE_INT 83 /* = 0x53 */ #define SET_BOX_DIMEN 84 /* = 0x54 */ #define SET_SHAPE 85 /* = 0x55 */ #define DEF_CODE 86 /* = 0x56 */ #define XETEX_DEF_CODE 87 /* = 0x57 */ #define DEF_FAMILY 88 /* = 0x58 */ #define SET_FONT 89 /* = 0x59 */ #define DEF_FONT 90 /* = 0x5a */ #define REGISTER 91 /* = 0x5b */ #define ADVANCE 92 /* = 0x5c */ #define MAX_INTERNAL 91 /* = 0x5b */ #define MULTIPLY 93 /* = 0x5d */ #define DIVIDE 94 /* = 0x5e */ #define PREFIX 95 /* = 0x5f */ #define LET 96 /* = 0x60 */ #define SHORTHAND_DEF 97 /* = 0x61 */ #define READ_TO_CS 98 /* = 0x62 */ #define DEF 99 /* = 0x63 */ #define SET_BOX 100 /* = 0x64 */ #define HYPH_DATA 101 /* = 0x65 */ #define SET_INTERACTION 102 /* = 0x66 */ #define UNDEFINED_CS 103 /* = 0x67 */ #define MAX_COMMAND 102 /* = 0x66 */ #define EXPAND_AFTER 104 /* = 0x68 */ #define NO_EXPAND 105 /* = 0x69 */ #define INPUT 106 /* = 0x6a */ #define IF_TEST 107 /* = 0x6b */ #define FI_OR_ELSE 108 /* = 0x6c */ #define CS_NAME 109 /* = 0x6d */ #define CONVERT 110 /* = 0x6e */ #define THE 111 /* = 0x6f */ #define TOP_BOT_MARK 112 /* = 0x70 */ #define CALL 113 /* = 0x71 */ #define LONG_CALL 114 /* = 0x72 */ #define OUTER_CALL 115 /* = 0x73 */ #define LONG_OUTER_CALL 116 /* = 0x74 */ #define END_TEMPLATE 117 /* = 0x75 */ #define DONT_EXPAND 118 /* = 0x76 */ #define GLUE_REF 119 /* = 0x77 */ #define SHAPE_REF 120 /* = 0x78 */ #define BOX_REF 121 /* = 0x79 */ #define DATA 122 /* = 0x7a */ /* Major modes of the engine. */ #define VMODE 1 /* = 0x1 */ #define HMODE 104 /* = 0x68 */ #define MMODE 207 /* = 0xcf */ /* Math font sizes. */ #define TEXT_SIZE 0 /* = 0x0 */ #define SCRIPT_SIZE 256 /* = 0x100 */ #define SCRIPT_SCRIPT_SIZE 512 /* = 0x200 */ /* Types of nodes that can occur in general lists. */ #define HLIST_NODE 0 /* = 0x0 */ #define VLIST_NODE 1 /* = 0x1 */ #define RULE_NODE 2 /* = 0x2 */ #define INS_NODE 3 /* = 0x3 */ #define MARK_NODE 4 /* = 0x4 */ #define ADJUST_NODE 5 /* = 0x5 */ #define LIGATURE_NODE 6 /* = 0x6 */ #define DISC_NODE 7 /* = 0x7 */ #define WHATSIT_NODE 8 /* = 0x8 */ #define MATH_NODE 9 /* = 0x9 */ #define GLUE_NODE 10 /* = 0xa */ #define KERN_NODE 11 /* = 0xb */ #define PENALTY_NODE 12 /* = 0xc */ #define UNSET_NODE 13 /* = 0xd */ #define STYLE_NODE 14 /* = 0xe */ #define CHOICE_NODE 15 /* = 0xf */ #define MARGIN_KERN_NODE 40 /* = 0x28 */ /* Additional types of "noads" that can occur in math lists. */ #define TT_LEFT_RIGHT_MIDDLE_MODE 1 /* = 0x1 */ #define ORD_NOAD 16 /* = 0x10 */ #define OP_NOAD 17 /* = 0x11 */ #define BIN_NOAD 18 /* = 0x12 */ #define REL_NOAD 19 /* = 0x13 */ #define OPEN_NOAD 20 /* = 0x14 */ #define CLOSE_NOAD 21 /* = 0x15 */ #define PUNCT_NOAD 22 /* = 0x16 */ #define INNER_NOAD 23 /* = 0x17 */ #define RADICAL_NOAD 24 /* = 0x18 */ #define FRACTION_NOAD 25 /* = 0x19 */ #define UNDER_NOAD 26 /* = 0x1a */ #define OVER_NOAD 27 /* = 0x1b */ #define ACCENT_NOAD 28 /* = 0x1c */ #define VCENTER_NOAD 29 /* = 0x1d */ #define LEFT_NOAD 30 /* = 0x1e */ #define RIGHT_NOAD 31 /* = 0x1f */ /* Subtypes for glue nodes. */ #define NORMAL 0 /* = 0x0 */ #define MU_GLUE 99 /* = 0x63 */ #define A_LEADERS 100 /* = 0x64 */ #define C_LEADERS 101 /* = 0x65 */ #define X_LEADERS 102 /* = 0x66 */ /* Subtypes for kern nodes. */ #define EXPLICIT 1 /* = 0x1 */ #define ACC_KERN 2 /* = 0x2 */ #define SPACE_ADJUSTMENT 3 /* = 0x3 */ /* Subtypes for math nodes. */ #define BEFORE 0 /* = 0x0 */ #define AFTER 1 /* = 0x1 */ #define BEGIN_M_CODE 2 /* = 0x2 */ #define END_M_CODE 3 /* = 0x3 */ #define BEGIN_L_CODE 6 /* = 0x6 */ #define END_L_CODE 7 /* = 0x7 */ #define BEGIN_R_CODE 10 /* = 0xa */ #define END_R_CODE 11 /* = 0xb */ /* Subtypes for math style nodes. */ #define DISPLAY_STYLE 0 /* = 0x0 */ #define TEXT_STYLE 2 /* = 0x2 */ #define SCRIPT_STYLE 4 /* = 0x4 */ #define SCRIPT_SCRIPT_STYLE 6 /* = 0x6 */ /* Subtypes for math OP noads. */ #define LIMITS 1 /* = 0x1 */ #define NO_LIMITS 2 /* = 0x2 */ /* Subtypes for whatsit nodes. */ #define OPEN_NODE 0 /* = 0x0 */ #define WRITE_NODE 1 /* = 0x1 */ #define CLOSE_NODE 2 /* = 0x2 */ #define SPECIAL_NODE 3 /* = 0x3 */ #define LANGUAGE_NODE 4 /* = 0x4 */ #define PDF_SAVE_POS_NODE 21 /* = 0x15 */ #define NATIVE_WORD_NODE 40 /* = 0x28 */ #define NATIVE_WORD_NODE_AT 41 /* = 0x29 */ #define GLYPH_NODE 42 /* = 0x2a */ #define PIC_NODE 43 /* = 0x2b */ #define PDF_NODE 44 /* = 0x2c */ /* Subcommand codes for the ABOVE command. */ #define ABOVE_CODE 0 /* = 0x0 */ #define OVER_CODE 1 /* = 0x1 */ #define ATOP_CODE 2 /* = 0x2 */ #define TT_ABOVE_WITH_DELIMS 3 /* = 0x3 */ #define TT_OVER_WITH_DELIMS 4 /* = 0x4 */ #define TT_ATOP_WITH_DELIMS 5 /* = 0x5 */ /* Subcommand codes for box-related commands. */ #define BOX_CODE 0 /* = 0x0 */ #define COPY_CODE 1 /* = 0x1 */ #define LAST_BOX_CODE 2 /* = 0x2 */ #define VSPLIT_CODE 3 /* = 0x3 */ #define VTOP_CODE 4 /* = 0x4 */ #define TT_VBOX_CODE 5 /* = 0x5 */ #define TT_HBOX_CODE 108 /* = 0x6c */ /* Subcommand codes for the CONVERT command. */ #define NUMBER_CODE 0 /* = 0x0 */ #define ROMAN_NUMERAL_CODE 1 /* = 0x1 */ #define STRING_CODE 2 /* = 0x2 */ #define MEANING_CODE 3 /* = 0x3 */ #define FONT_NAME_CODE 4 /* = 0x4 */ #define ETEX_CONVERT_BASE 5 /* = 0x5 */ #define ETEX_REVISION_CODE 5 /* = 0x5 */ #define ETEX_CONVERT_CODES 6 /* = 0x6 */ #define EXPANDED_CODE 6 /* = 0x6 */ #define PDFTEX_FIRST_EXPAND_CODE 7 /* = 0x7 */ #define LEFT_MARGIN_KERN_CODE 16 /* = 0x10 */ #define RIGHT_MARGIN_KERN_CODE 17 /* = 0x11 */ #define PDF_STRCMP_CODE 18 /* = 0x12 */ #define PDF_CREATION_DATE_CODE 22 /* = 0x16 */ #define PDF_FILE_MOD_DATE_CODE 23 /* = 0x17 */ #define PDF_FILE_SIZE_CODE 24 /* = 0x18 */ #define PDF_MDFIVE_SUM_CODE 25 /* = 0x19 */ #define PDF_FILE_DUMP_CODE 26 /* = 0x1a */ #define UNIFORM_DEVIATE_CODE 29 /* = 0x1d */ #define NORMAL_DEVIATE_CODE 30 /* = 0x1e */ #define PDFTEX_CONVERT_CODES 33 /* = 0x21 */ #define XETEX_FIRST_EXPAND_CODE 33 /* = 0x21 */ #define XETEX_REVISION_CODE 33 /* = 0x21 */ #define XETEX_VARIATION_NAME_CODE 34 /* = 0x22 */ #define XETEX_FEATURE_NAME_CODE 35 /* = 0x23 */ #define XETEX_SELECTOR_NAME_CODE 36 /* = 0x24 */ #define XETEX_GLYPH_NAME_CODE 37 /* = 0x25 */ #define XETEX_UCHAR_CODE 38 /* = 0x26 */ #define XETEX_UCHARCAT_CODE 39 /* = 0x27 */ #define JOB_NAME_CODE 40 /* = 0x28 */ #define XETEX_CONVERT_CODES 40 /* = 0x28 */ /* Subcommand codes for the EXTENSION command. */ #define IMMEDIATE_CODE 4 /* = 0x4 */ #define SET_LANGUAGE_CODE 5 /* = 0x5 */ #define RESET_TIMER_CODE 31 /* = 0x1f */ #define SET_RANDOM_SEED_CODE 33 /* = 0x21 */ #define PIC_FILE_CODE 41 /* = 0x29 */ #define PDF_FILE_CODE 42 /* = 0x2a */ #define GLYPH_CODE 43 /* = 0x2b */ #define XETEX_INPUT_ENCODING_EXTENSION_CODE 44 /* = 0x2c */ #define XETEX_DEFAULT_ENCODING_EXTENSION_CODE 45 /* = 0x2d */ #define XETEX_LINEBREAK_LOCALE_EXTENSION_CODE 46 /* = 0x2e */ /* Subcommand codes for the FI_OR_ELSE command. */ #define FI_CODE 2 /* = 0x2 */ #define ELSE_CODE 3 /* = 0x3 */ #define OR_CODE 4 /* = 0x4 */ /* Subcommand codes for the IF_TEST command. */ #define IF_CHAR_CODE 0 /* = 0x0 */ #define IF_CAT_CODE 1 /* = 0x1 */ #define IF_INT_CODE 2 /* = 0x2 */ #define IF_DIM_CODE 3 /* = 0x3 */ #define IF_ODD_CODE 4 /* = 0x4 */ #define IF_VMODE_CODE 5 /* = 0x5 */ #define IF_HMODE_CODE 6 /* = 0x6 */ #define IF_MMODE_CODE 7 /* = 0x7 */ #define IF_INNER_CODE 8 /* = 0x8 */ #define IF_VOID_CODE 9 /* = 0x9 */ #define IF_HBOX_CODE 10 /* = 0xa */ #define IF_VBOX_CODE 11 /* = 0xb */ #define IFX_CODE 12 /* = 0xc */ #define IF_EOF_CODE 13 /* = 0xd */ #define IF_TRUE_CODE 14 /* = 0xe */ #define IF_FALSE_CODE 15 /* = 0xf */ #define IF_CASE_CODE 16 /* = 0x10 */ #define IF_DEF_CODE 17 /* = 0x11 */ #define IF_CS_CODE 18 /* = 0x12 */ #define IF_FONT_CHAR_CODE 19 /* = 0x13 */ #define IF_IN_CSNAME_CODE 20 /* = 0x14 */ #define IF_PRIMITIVE_CODE 21 /* = 0x15 */ /* Subcommand codes for the LAST_ITEM command. */ #define INT_VAL 0 /* = 0x0 */ #define DIMEN_VAL 1 /* = 0x1 */ #define GLUE_VAL 2 /* = 0x2 */ #define LAST_NODE_TYPE_CODE 3 /* = 0x3 */ #define INPUT_LINE_NO_CODE 4 /* = 0x4 */ #define BADNESS_CODE 5 /* = 0x5 */ #define PDFTEX_FIRST_RINT_CODE 6 /* = 0x6 */ #define PDF_LAST_X_POS_CODE 12 /* = 0xc */ #define PDF_LAST_Y_POS_CODE 13 /* = 0xd */ #define ELAPSED_TIME_CODE 16 /* = 0x10 */ #define PDF_SHELL_ESCAPE_CODE 17 /* = 0x11 */ #define RANDOM_SEED_CODE 18 /* = 0x12 */ #define ETEX_INT 19 /* = 0x13 */ #define ETEX_VERSION_CODE 19 /* = 0x13 */ #define CURRENT_GROUP_LEVEL_CODE 20 /* = 0x14 */ #define CURRENT_GROUP_TYPE_CODE 21 /* = 0x15 */ #define CURRENT_IF_LEVEL_CODE 22 /* = 0x16 */ #define CURRENT_IF_TYPE_CODE 23 /* = 0x17 */ #define CURRENT_IF_BRANCH_CODE 24 /* = 0x18 */ #define GLUE_STRETCH_ORDER_CODE 25 /* = 0x19 */ #define GLUE_SHRINK_ORDER_CODE 26 /* = 0x1a */ #define XETEX_INT 27 /* = 0x1b */ #define XETEX_VERSION_CODE 27 /* = 0x1b */ #define XETEX_COUNT_GLYPHS_CODE 28 /* = 0x1c */ #define XETEX_COUNT_VARIATIONS_CODE 29 /* = 0x1d */ #define XETEX_VARIATION_CODE 30 /* = 0x1e */ #define XETEX_FIND_VARIATION_BY_NAME_CODE 31 /* = 0x1f */ #define XETEX_VARIATION_MIN_CODE 32 /* = 0x20 */ #define XETEX_VARIATION_MAX_CODE 33 /* = 0x21 */ #define XETEX_VARIATION_DEFAULT_CODE 34 /* = 0x22 */ #define XETEX_COUNT_FEATURES_CODE 35 /* = 0x23 */ #define XETEX_FEATURE_CODE_CODE 36 /* = 0x24 */ #define XETEX_FIND_FEATURE_BY_NAME_CODE 37 /* = 0x25 */ #define XETEX_IS_EXCLUSIVE_FEATURE_CODE 38 /* = 0x26 */ #define XETEX_COUNT_SELECTORS_CODE 39 /* = 0x27 */ #define XETEX_SELECTOR_CODE_CODE 40 /* = 0x28 */ #define XETEX_FIND_SELECTOR_BY_NAME_CODE 41 /* = 0x29 */ #define XETEX_IS_DEFAULT_SELECTOR_CODE 42 /* = 0x2a */ #define XETEX_OT_COUNT_SCRIPTS_CODE 43 /* = 0x2b */ #define XETEX_OT_COUNT_LANGUAGES_CODE 44 /* = 0x2c */ #define XETEX_OT_COUNT_FEATURES_CODE 45 /* = 0x2d */ #define XETEX_OT_SCRIPT_CODE 46 /* = 0x2e */ #define XETEX_OT_LANGUAGE_CODE 47 /* = 0x2f */ #define XETEX_OT_FEATURE_CODE 48 /* = 0x30 */ #define XETEX_MAP_CHAR_TO_GLYPH_CODE 49 /* = 0x31 */ #define XETEX_GLYPH_INDEX_CODE 50 /* = 0x32 */ #define XETEX_FONT_TYPE_CODE 51 /* = 0x33 */ #define XETEX_FIRST_CHAR_CODE 52 /* = 0x34 */ #define XETEX_LAST_CHAR_CODE 53 /* = 0x35 */ #define XETEX_PDF_PAGE_COUNT_CODE 54 /* = 0x36 */ #define XETEX_LAST_ITEM_CODES 54 /* = 0x36 */ #define XETEX_DIM 55 /* = 0x37 */ #define XETEX_GLYPH_BOUNDS_CODE 55 /* = 0x37 */ #define XETEX_LAST_DIM_CODES 55 /* = 0x37 */ #define ETEX_DIM 56 /* = 0x38 */ #define FONT_CHAR_WD_CODE 56 /* = 0x38 */ #define FONT_CHAR_HT_CODE 57 /* = 0x39 */ #define FONT_CHAR_DP_CODE 58 /* = 0x3a */ #define FONT_CHAR_IC_CODE 59 /* = 0x3b */ #define PAR_SHAPE_LENGTH_CODE 60 /* = 0x3c */ #define PAR_SHAPE_INDENT_CODE 61 /* = 0x3d */ #define PAR_SHAPE_DIMEN_CODE 62 /* = 0x3e */ #define GLUE_STRETCH_CODE 63 /* = 0x3f */ #define GLUE_SHRINK_CODE 64 /* = 0x40 */ #define ETEX_GLUE 65 /* = 0x41 */ #define MU_TO_GLUE_CODE 65 /* = 0x41 */ #define ETEX_MU 66 /* = 0x42 */ #define GLUE_TO_MU_CODE 66 /* = 0x42 */ #define ETEX_EXPR 67 /* = 0x43 */ #define TT_ETEX_NUM_EXPR_CODE 67 /* = 0x43 */ #define TT_ETEX_DIM_EXPR_CODE 68 /* = 0x44 */ #define TT_ETEX_GLUE_EXPR_CODE 69 /* = 0x45 */ #define TT_ETEX_MU_EXPR_CODE 70 /* = 0x46 */ /* Subcommand codes for the SET_INTERACTION command. */ #define BATCH_MODE 0 /* = 0x0 */ #define NONSTOP_MODE 1 /* = 0x1 */ #define SCROLL_MODE 2 /* = 0x2 */ #define ERROR_STOP_MODE 3 /* = 0x3 */ /* Subcommand codes for the SET_BOX_DIMEN command. */ #define WIDTH_OFFSET 1 /* = 0x1 */ #define DEPTH_OFFSET 2 /* = 0x2 */ #define HEIGHT_OFFSET 3 /* = 0x3 */ /* Subcommand codes for the SHORTHAND_DEF command. */ #define CHAR_DEF_CODE 0 /* = 0x0 */ #define MATH_CHAR_DEF_CODE 1 /* = 0x1 */ #define COUNT_DEF_CODE 2 /* = 0x2 */ #define DIMEN_DEF_CODE 3 /* = 0x3 */ #define SKIP_DEF_CODE 4 /* = 0x4 */ #define MU_SKIP_DEF_CODE 5 /* = 0x5 */ #define TOKS_DEF_CODE 6 /* = 0x6 */ #define CHAR_SUB_DEF_CODE 7 /* = 0x7 */ #define XETEX_MATH_CHAR_NUM_DEF_CODE 8 /* = 0x8 */ #define XETEX_MATH_CHAR_DEF_CODE 9 /* = 0x9 */ /* Subcommand codes for skip-related command. */ #define FIL_CODE 0 /* = 0x0 */ #define FILL_CODE 1 /* = 0x1 */ #define SS_CODE 2 /* = 0x2 */ #define FIL_NEG_CODE 3 /* = 0x3 */ #define SKIP_CODE 4 /* = 0x4 */ #define MSKIP_CODE 5 /* = 0x5 */ /* Subcommand codes for the TAB_MARK and CAR_RET commands. */ #define SPAN_CODE 1114113 /* = 0x110001 */ #define CR_CODE 1114114 /* = 0x110002 */ #define CR_CR_CODE 1114115 /* = 0x110003 */ /* Subcommand codes for the TOP_BOT_MARK command. */ #define TOP_MARK_CODE 0 /* = 0x0 */ #define FIRST_MARK_CODE 1 /* = 0x1 */ #define BOT_MARK_CODE 2 /* = 0x2 */ #define SPLIT_FIRST_MARK_CODE 3 /* = 0x3 */ #define SPLIT_BOT_MARK_CODE 4 /* = 0x4 */ #define TT_TOP_MARKS_CODE 5 /* = 0x5 */ #define TT_FIRST_MARKS_CODE 6 /* = 0x6 */ #define TT_BOT_MARKS_CODE 7 /* = 0x7 */ #define TT_SPLIT_FIRST_MARKS_CODE 8 /* = 0x8 */ #define TT_SPLIT_BOT_MARKS_CODE 9 /* = 0x9 */ /* Subcommand codes for the XRAY command. */ #define SHOW_CODE 0 /* = 0x0 */ #define SHOW_BOX_CODE 1 /* = 0x1 */ #define SHOW_THE_CODE 2 /* = 0x2 */ #define SHOW_LISTS 3 /* = 0x3 */ #define SHOW_GROUPS 4 /* = 0x4 */ #define SHOW_TOKENS 5 /* = 0x5 */ #define SHOW_IFS 6 /* = 0x6 */ /* Primitives */ enum xetex_format_primitive_extra_init_t { xf_prim_init_none = 0, xf_prim_init_par = 1, xf_prim_init_write = 2 /* Other values should be used to set up a "frozen" primitive */ }; typedef struct xetex_format_primitive_def_t { char const *name; eight_bits cmd; int32_t chr; int32_t extra_init; } xetex_format_primitive_def_t; #define XETEX_FORMAT_PRIMITIVE_INITIALIZERS \ { "relax", RELAX, TOO_BIG_USV, FROZEN_RELAX }, \ { "span", TAB_MARK, SPAN_CODE, xf_prim_init_none }, \ { "cr", CAR_RET, CR_CODE, FROZEN_CR }, \ { "crcr", CAR_RET, CR_CR_CODE, xf_prim_init_none }, \ { "par", PAR_END, TOO_BIG_USV, xf_prim_init_par }, \ { "end", STOP, 0, xf_prim_init_none }, \ { "dump", STOP, 1, xf_prim_init_none }, \ { "delimiter", DELIM_NUM, 0, xf_prim_init_none }, \ { "Udelimiter", DELIM_NUM, 1, xf_prim_init_none }, \ { "XeTeXdelimiter", DELIM_NUM, 1, xf_prim_init_none }, \ { "char", CHAR_NUM, 0, xf_prim_init_none }, \ { "mathchar", MATH_CHAR_NUM, 0, xf_prim_init_none }, \ { "Umathcharnum", MATH_CHAR_NUM, 1, xf_prim_init_none }, \ { "XeTeXmathcharnum", MATH_CHAR_NUM, 1, xf_prim_init_none }, \ { "Umathchar", MATH_CHAR_NUM, 2, xf_prim_init_none }, \ { "XeTeXmathchar", MATH_CHAR_NUM, 2, xf_prim_init_none }, \ { "mark", MARK, 0, xf_prim_init_none }, \ { "marks", MARK, 5, xf_prim_init_none }, \ { "show", XRAY, SHOW_CODE, xf_prim_init_none }, \ { "showbox", XRAY, SHOW_BOX_CODE, xf_prim_init_none }, \ { "showthe", XRAY, SHOW_THE_CODE, xf_prim_init_none }, \ { "showlists", XRAY, SHOW_LISTS, xf_prim_init_none }, \ { "showgroups", XRAY, SHOW_GROUPS, xf_prim_init_none }, \ { "showtokens", XRAY, SHOW_TOKENS, xf_prim_init_none }, \ { "showifs", XRAY, SHOW_IFS, xf_prim_init_none }, \ { "box", MAKE_BOX, BOX_CODE, xf_prim_init_none }, \ { "copy", MAKE_BOX, COPY_CODE, xf_prim_init_none }, \ { "lastbox", MAKE_BOX, LAST_BOX_CODE, xf_prim_init_none }, \ { "vsplit", MAKE_BOX, VSPLIT_CODE, xf_prim_init_none }, \ { "vtop", MAKE_BOX, VTOP_CODE, xf_prim_init_none }, \ { "vbox", MAKE_BOX, TT_VBOX_CODE, xf_prim_init_none }, \ { "hbox", MAKE_BOX, TT_HBOX_CODE, xf_prim_init_none }, \ { "moveright", HMOVE, 0, xf_prim_init_none }, \ { "moveleft", HMOVE, 1, xf_prim_init_none }, \ { "lower", VMOVE, 0, xf_prim_init_none }, \ { "raise", VMOVE, 1, xf_prim_init_none }, \ { "unhbox", UN_HBOX, BOX_CODE, xf_prim_init_none }, \ { "unhcopy", UN_HBOX, COPY_CODE, xf_prim_init_none }, \ { "unvbox", UN_VBOX, BOX_CODE, xf_prim_init_none }, \ { "unvcopy", UN_VBOX, COPY_CODE, xf_prim_init_none }, \ { "pagediscards", UN_VBOX, LAST_BOX_CODE, xf_prim_init_none }, \ { "splitdiscards", UN_VBOX, VSPLIT_CODE, xf_prim_init_none }, \ { "unskip", REMOVE_ITEM, GLUE_NODE, xf_prim_init_none }, \ { "unkern", REMOVE_ITEM, KERN_NODE, xf_prim_init_none }, \ { "unpenalty", REMOVE_ITEM, PENALTY_NODE, xf_prim_init_none }, \ { "hfil", HSKIP, FIL_CODE, xf_prim_init_none }, \ { "hfill", HSKIP, FILL_CODE, xf_prim_init_none }, \ { "hss", HSKIP, SS_CODE, xf_prim_init_none }, \ { "hfilneg", HSKIP, FIL_NEG_CODE, xf_prim_init_none }, \ { "hskip", HSKIP, SKIP_CODE, xf_prim_init_none }, \ { "vfil", VSKIP, FIL_CODE, xf_prim_init_none }, \ { "vfill", VSKIP, FILL_CODE, xf_prim_init_none }, \ { "vss", VSKIP, SS_CODE, xf_prim_init_none }, \ { "vfilneg", VSKIP, FIL_NEG_CODE, xf_prim_init_none }, \ { "vskip", VSKIP, SKIP_CODE, xf_prim_init_none }, \ { "mskip", MSKIP, MSKIP_CODE, xf_prim_init_none }, \ { "kern", KERN, EXPLICIT, xf_prim_init_none }, \ { "mkern", MKERN, MU_GLUE, xf_prim_init_none }, \ { "shipout", LEADER_SHIP, MU_GLUE, xf_prim_init_none }, \ { "leaders", LEADER_SHIP, A_LEADERS, xf_prim_init_none }, \ { "cleaders", LEADER_SHIP, C_LEADERS, xf_prim_init_none }, \ { "xleaders", LEADER_SHIP, X_LEADERS, xf_prim_init_none }, \ { "halign", HALIGN, 0, xf_prim_init_none }, \ { "valign", VALIGN, BEFORE, xf_prim_init_none }, \ { "beginL", VALIGN, BEGIN_L_CODE, xf_prim_init_none }, \ { "endL", VALIGN, END_L_CODE, xf_prim_init_none }, \ { "beginR", VALIGN, BEGIN_R_CODE, xf_prim_init_none }, \ { "endR", VALIGN, END_R_CODE, xf_prim_init_none }, \ { "noalign", NO_ALIGN, 0, xf_prim_init_none }, \ { "vrule", VRULE, 0, xf_prim_init_none }, \ { "hrule", HRULE, 0, xf_prim_init_none }, \ { "insert", INSERT, 0, xf_prim_init_none }, \ { "vadjust", VADJUST, 0, xf_prim_init_none }, \ { "ignorespaces", IGNORE_SPACES, 0, xf_prim_init_none }, \ { "afterassignment", AFTER_ASSIGNMENT, 0, xf_prim_init_none }, \ { "aftergroup", AFTER_GROUP, 0, xf_prim_init_none }, \ { "penalty", BREAK_PENALTY, 0, xf_prim_init_none }, \ { "noindent", START_PAR, 0, xf_prim_init_none }, \ { "indent", START_PAR, 1, xf_prim_init_none }, \ { "/", ITAL_CORR, 0, xf_prim_init_none }, \ { "accent", ACCENT, 0, xf_prim_init_none }, \ { "mathaccent", MATH_ACCENT, 0, xf_prim_init_none }, \ { "Umathaccent", MATH_ACCENT, 1, xf_prim_init_none }, \ { "XeTeXmathaccent", MATH_ACCENT, 1, xf_prim_init_none }, \ { "discretionary", DISCRETIONARY, 0, xf_prim_init_none }, \ { "-", DISCRETIONARY, 1, xf_prim_init_none }, \ { "eqno", EQ_NO, 0, xf_prim_init_none }, \ { "leqno", EQ_NO, 1, xf_prim_init_none }, \ { "middle", LEFT_RIGHT, TT_LEFT_RIGHT_MIDDLE_MODE, xf_prim_init_none }, \ { "left", LEFT_RIGHT, LEFT_NOAD, xf_prim_init_none }, \ { "right", LEFT_RIGHT, RIGHT_NOAD, FROZEN_RIGHT }, \ { "mathord", MATH_COMP, ORD_NOAD, xf_prim_init_none }, \ { "mathop", MATH_COMP, OP_NOAD, xf_prim_init_none }, \ { "mathbin", MATH_COMP, BIN_NOAD, xf_prim_init_none }, \ { "mathrel", MATH_COMP, REL_NOAD, xf_prim_init_none }, \ { "mathopen", MATH_COMP, OPEN_NOAD, xf_prim_init_none }, \ { "mathclose", MATH_COMP, CLOSE_NOAD, xf_prim_init_none }, \ { "mathpunct", MATH_COMP, PUNCT_NOAD, xf_prim_init_none }, \ { "mathinner", MATH_COMP, INNER_NOAD, xf_prim_init_none }, \ { "underline", MATH_COMP, UNDER_NOAD, xf_prim_init_none }, \ { "overline", MATH_COMP, OVER_NOAD, xf_prim_init_none }, \ { "displaylimits", LIMIT_SWITCH, NORMAL, xf_prim_init_none }, \ { "limits", LIMIT_SWITCH, LIMITS, xf_prim_init_none }, \ { "nolimits", LIMIT_SWITCH, NO_LIMITS, xf_prim_init_none }, \ { "above", ABOVE, ABOVE_CODE, xf_prim_init_none }, \ { "over", ABOVE, OVER_CODE, xf_prim_init_none }, \ { "atop", ABOVE, ATOP_CODE, xf_prim_init_none }, \ { "abovewithdelims", ABOVE, TT_ABOVE_WITH_DELIMS, xf_prim_init_none }, \ { "overwithdelims", ABOVE, TT_OVER_WITH_DELIMS, xf_prim_init_none }, \ { "atopwithdelims", ABOVE, TT_ATOP_WITH_DELIMS, xf_prim_init_none }, \ { "displaystyle", MATH_STYLE, DISPLAY_STYLE, xf_prim_init_none }, \ { "textstyle", MATH_STYLE, TEXT_STYLE, xf_prim_init_none }, \ { "scriptstyle", MATH_STYLE, SCRIPT_STYLE, xf_prim_init_none }, \ { "scriptscriptstyle", MATH_STYLE, SCRIPT_SCRIPT_STYLE, xf_prim_init_none }, \ { "mathchoice", MATH_CHOICE, 0, xf_prim_init_none }, \ { "nonscript", NON_SCRIPT, 0, xf_prim_init_none }, \ { "vcenter", VCENTER, 0, xf_prim_init_none }, \ { "lowercase", CASE_SHIFT, LC_CODE_BASE, xf_prim_init_none }, \ { "uppercase", CASE_SHIFT, UC_CODE_BASE, xf_prim_init_none }, \ { "message", MESSAGE, 0, xf_prim_init_none }, \ { "errmessage", MESSAGE, 1, xf_prim_init_none }, \ { "openout", EXTENSION, OPEN_NODE, xf_prim_init_none }, \ { "write", EXTENSION, WRITE_NODE, xf_prim_init_write }, \ { "closeout", EXTENSION, CLOSE_NODE, xf_prim_init_none }, \ { "special", EXTENSION, SPECIAL_NODE, FROZEN_SPECIAL }, \ { "immediate", EXTENSION, IMMEDIATE_CODE, xf_prim_init_none }, \ { "setlanguage", EXTENSION, SET_LANGUAGE_CODE, xf_prim_init_none }, \ { "pdfsavepos", EXTENSION, PDF_SAVE_POS_NODE, xf_prim_init_none }, \ { "resettimer", EXTENSION, RESET_TIMER_CODE, xf_prim_init_none }, \ { "setrandomseed", EXTENSION, SET_RANDOM_SEED_CODE, xf_prim_init_none }, \ { "XeTeXpicfile", EXTENSION, PIC_FILE_CODE, xf_prim_init_none }, \ { "XeTeXpdffile", EXTENSION, PDF_FILE_CODE, xf_prim_init_none }, \ { "XeTeXglyph", EXTENSION, GLYPH_CODE, xf_prim_init_none }, \ { "XeTeXinputencoding", EXTENSION, XETEX_INPUT_ENCODING_EXTENSION_CODE, xf_prim_init_none }, \ { "XeTeXdefaultencoding", EXTENSION, XETEX_DEFAULT_ENCODING_EXTENSION_CODE, xf_prim_init_none }, \ { "XeTeXlinebreaklocale", EXTENSION, XETEX_LINEBREAK_LOCALE_EXTENSION_CODE, xf_prim_init_none }, \ { "closein", IN_STREAM, 0, xf_prim_init_none }, \ { "openin", IN_STREAM, 1, xf_prim_init_none }, \ { "begingroup", BEGIN_GROUP, 0, xf_prim_init_none }, \ { "endgroup", END_GROUP, 0, FROZEN_END_GROUP }, \ { "omit", OMIT, 0, xf_prim_init_none }, \ { " ", EX_SPACE, 0, xf_prim_init_none }, \ { "noboundary", NO_BOUNDARY, 0, xf_prim_init_none }, \ { "radical", RADICAL, 0, xf_prim_init_none }, \ { "Uradical", RADICAL, 1, xf_prim_init_none }, \ { "XeTeXradical", RADICAL, 1, xf_prim_init_none }, \ { "endcsname", END_CS_NAME, 0, xf_prim_init_none }, \ { "lastpenalty", LAST_ITEM, INT_VAL, xf_prim_init_none }, \ { "lastkern", LAST_ITEM, DIMEN_VAL, xf_prim_init_none }, \ { "lastskip", LAST_ITEM, GLUE_VAL, xf_prim_init_none }, \ { "lastnodetype", LAST_ITEM, LAST_NODE_TYPE_CODE, xf_prim_init_none }, \ { "inputlineno", LAST_ITEM, INPUT_LINE_NO_CODE, xf_prim_init_none }, \ { "badness", LAST_ITEM, BADNESS_CODE, xf_prim_init_none }, \ { "pdflastxpos", LAST_ITEM, PDF_LAST_X_POS_CODE, xf_prim_init_none }, \ { "pdflastypos", LAST_ITEM, PDF_LAST_Y_POS_CODE, xf_prim_init_none }, \ { "elapsedtime", LAST_ITEM, ELAPSED_TIME_CODE, xf_prim_init_none }, \ { "shellescape", LAST_ITEM, PDF_SHELL_ESCAPE_CODE, xf_prim_init_none }, \ { "randomseed", LAST_ITEM, RANDOM_SEED_CODE, xf_prim_init_none }, \ { "eTeXversion", LAST_ITEM, ETEX_VERSION_CODE, xf_prim_init_none }, \ { "currentgrouplevel", LAST_ITEM, CURRENT_GROUP_LEVEL_CODE, xf_prim_init_none }, \ { "currentgrouptype", LAST_ITEM, CURRENT_GROUP_TYPE_CODE, xf_prim_init_none }, \ { "currentiflevel", LAST_ITEM, CURRENT_IF_LEVEL_CODE, xf_prim_init_none }, \ { "currentiftype", LAST_ITEM, CURRENT_IF_TYPE_CODE, xf_prim_init_none }, \ { "currentifbranch", LAST_ITEM, CURRENT_IF_BRANCH_CODE, xf_prim_init_none }, \ { "gluestretchorder", LAST_ITEM, GLUE_STRETCH_ORDER_CODE, xf_prim_init_none }, \ { "glueshrinkorder", LAST_ITEM, GLUE_SHRINK_ORDER_CODE, xf_prim_init_none }, \ { "XeTeXversion", LAST_ITEM, XETEX_VERSION_CODE, xf_prim_init_none }, \ { "XeTeXcountglyphs", LAST_ITEM, XETEX_COUNT_GLYPHS_CODE, xf_prim_init_none }, \ { "XeTeXcountvariations", LAST_ITEM, XETEX_COUNT_VARIATIONS_CODE, xf_prim_init_none }, \ { "XeTeXvariation", LAST_ITEM, XETEX_VARIATION_CODE, xf_prim_init_none }, \ { "XeTeXfindvariationbyname", LAST_ITEM, XETEX_FIND_VARIATION_BY_NAME_CODE, xf_prim_init_none }, \ { "XeTeXvariationmin", LAST_ITEM, XETEX_VARIATION_MIN_CODE, xf_prim_init_none }, \ { "XeTeXvariationmax", LAST_ITEM, XETEX_VARIATION_MAX_CODE, xf_prim_init_none }, \ { "XeTeXvariationdefault", LAST_ITEM, XETEX_VARIATION_DEFAULT_CODE, xf_prim_init_none }, \ { "XeTeXcountfeatures", LAST_ITEM, XETEX_COUNT_FEATURES_CODE, xf_prim_init_none }, \ { "XeTeXfeaturecode", LAST_ITEM, XETEX_FEATURE_CODE_CODE, xf_prim_init_none }, \ { "XeTeXfindfeaturebyname", LAST_ITEM, XETEX_FIND_FEATURE_BY_NAME_CODE, xf_prim_init_none }, \ { "XeTeXisexclusivefeature", LAST_ITEM, XETEX_IS_EXCLUSIVE_FEATURE_CODE, xf_prim_init_none }, \ { "XeTeXcountselectors", LAST_ITEM, XETEX_COUNT_SELECTORS_CODE, xf_prim_init_none }, \ { "XeTeXselectorcode", LAST_ITEM, XETEX_SELECTOR_CODE_CODE, xf_prim_init_none }, \ { "XeTeXfindselectorbyname", LAST_ITEM, XETEX_FIND_SELECTOR_BY_NAME_CODE, xf_prim_init_none }, \ { "XeTeXisdefaultselector", LAST_ITEM, XETEX_IS_DEFAULT_SELECTOR_CODE, xf_prim_init_none }, \ { "XeTeXOTcountscripts", LAST_ITEM, XETEX_OT_COUNT_SCRIPTS_CODE, xf_prim_init_none }, \ { "XeTeXOTcountlanguages", LAST_ITEM, XETEX_OT_COUNT_LANGUAGES_CODE, xf_prim_init_none }, \ { "XeTeXOTcountfeatures", LAST_ITEM, XETEX_OT_COUNT_FEATURES_CODE, xf_prim_init_none }, \ { "XeTeXOTscripttag", LAST_ITEM, XETEX_OT_SCRIPT_CODE, xf_prim_init_none }, \ { "XeTeXOTlanguagetag", LAST_ITEM, XETEX_OT_LANGUAGE_CODE, xf_prim_init_none }, \ { "XeTeXOTfeaturetag", LAST_ITEM, XETEX_OT_FEATURE_CODE, xf_prim_init_none }, \ { "XeTeXcharglyph", LAST_ITEM, XETEX_MAP_CHAR_TO_GLYPH_CODE, xf_prim_init_none }, \ { "XeTeXglyphindex", LAST_ITEM, XETEX_GLYPH_INDEX_CODE, xf_prim_init_none }, \ { "XeTeXfonttype", LAST_ITEM, XETEX_FONT_TYPE_CODE, xf_prim_init_none }, \ { "XeTeXfirstfontchar", LAST_ITEM, XETEX_FIRST_CHAR_CODE, xf_prim_init_none }, \ { "XeTeXlastfontchar", LAST_ITEM, XETEX_LAST_CHAR_CODE, xf_prim_init_none }, \ { "XeTeXpdfpagecount", LAST_ITEM, XETEX_PDF_PAGE_COUNT_CODE, xf_prim_init_none }, \ { "XeTeXglyphbounds", LAST_ITEM, XETEX_GLYPH_BOUNDS_CODE, xf_prim_init_none }, \ { "fontcharwd", LAST_ITEM, FONT_CHAR_WD_CODE, xf_prim_init_none }, \ { "fontcharht", LAST_ITEM, FONT_CHAR_HT_CODE, xf_prim_init_none }, \ { "fontchardp", LAST_ITEM, FONT_CHAR_DP_CODE, xf_prim_init_none }, \ { "fontcharic", LAST_ITEM, FONT_CHAR_IC_CODE, xf_prim_init_none }, \ { "parshapelength", LAST_ITEM, PAR_SHAPE_LENGTH_CODE, xf_prim_init_none }, \ { "parshapeindent", LAST_ITEM, PAR_SHAPE_INDENT_CODE, xf_prim_init_none }, \ { "parshapedimen", LAST_ITEM, PAR_SHAPE_DIMEN_CODE, xf_prim_init_none }, \ { "gluestretch", LAST_ITEM, GLUE_STRETCH_CODE, xf_prim_init_none }, \ { "glueshrink", LAST_ITEM, GLUE_SHRINK_CODE, xf_prim_init_none }, \ { "mutoglue", LAST_ITEM, MU_TO_GLUE_CODE, xf_prim_init_none }, \ { "gluetomu", LAST_ITEM, GLUE_TO_MU_CODE, xf_prim_init_none }, \ { "numexpr", LAST_ITEM, TT_ETEX_NUM_EXPR_CODE, xf_prim_init_none }, \ { "dimexpr", LAST_ITEM, TT_ETEX_DIM_EXPR_CODE, xf_prim_init_none }, \ { "glueexpr", LAST_ITEM, TT_ETEX_GLUE_EXPR_CODE, xf_prim_init_none }, \ { "muexpr", LAST_ITEM, TT_ETEX_MU_EXPR_CODE, xf_prim_init_none }, \ { "toks", TOKS_REGISTER, 0, xf_prim_init_none }, \ { "fontdimen", ASSIGN_FONT_DIMEN, 0, xf_prim_init_none }, \ { "hyphenchar", ASSIGN_FONT_INT, 0, xf_prim_init_none }, \ { "skewchar", ASSIGN_FONT_INT, 1, xf_prim_init_none }, \ { "lpcode", ASSIGN_FONT_INT, 2, xf_prim_init_none }, \ { "rpcode", ASSIGN_FONT_INT, 3, xf_prim_init_none }, \ { "prevdepth", SET_AUX, VMODE, xf_prim_init_none }, \ { "spacefactor", SET_AUX, HMODE, xf_prim_init_none }, \ { "prevgraf", SET_PREV_GRAF, 0, xf_prim_init_none }, \ { "pagegoal", SET_PAGE_DIMEN, 0, xf_prim_init_none }, \ { "pagetotal", SET_PAGE_DIMEN, 1, xf_prim_init_none }, \ { "pagestretch", SET_PAGE_DIMEN, 2, xf_prim_init_none }, \ { "pagefilstretch", SET_PAGE_DIMEN, 3, xf_prim_init_none }, \ { "pagefillstretch", SET_PAGE_DIMEN, 4, xf_prim_init_none }, \ { "pagefilllstretch", SET_PAGE_DIMEN, 5, xf_prim_init_none }, \ { "pageshrink", SET_PAGE_DIMEN, 6, xf_prim_init_none }, \ { "pagedepth", SET_PAGE_DIMEN, 7, xf_prim_init_none }, \ { "deadcycles", SET_PAGE_INT, 0, xf_prim_init_none }, \ { "insertpenalties", SET_PAGE_INT, 1, xf_prim_init_none }, \ { "interactionmode", SET_PAGE_INT, 2, xf_prim_init_none }, \ { "wd", SET_BOX_DIMEN, WIDTH_OFFSET, xf_prim_init_none }, \ { "dp", SET_BOX_DIMEN, DEPTH_OFFSET, xf_prim_init_none }, \ { "ht", SET_BOX_DIMEN, HEIGHT_OFFSET, xf_prim_init_none }, \ { "catcode", DEF_CODE, CAT_CODE_BASE, xf_prim_init_none }, \ { "lccode", DEF_CODE, LC_CODE_BASE, xf_prim_init_none }, \ { "uccode", DEF_CODE, UC_CODE_BASE, xf_prim_init_none }, \ { "sfcode", DEF_CODE, SF_CODE_BASE, xf_prim_init_none }, \ { "mathcode", DEF_CODE, MATH_CODE_BASE, xf_prim_init_none }, \ { "delcode", DEF_CODE, DEL_CODE_BASE, xf_prim_init_none }, \ { "XeTeXcharclass", XETEX_DEF_CODE, SF_CODE_BASE, xf_prim_init_none }, \ { "Umathcodenum", XETEX_DEF_CODE, MATH_CODE_BASE, xf_prim_init_none }, \ { "XeTeXmathcodenum", XETEX_DEF_CODE, MATH_CODE_BASE, xf_prim_init_none }, \ { "Umathcode", XETEX_DEF_CODE, 6712618, xf_prim_init_none }, \ { "XeTeXmathcode", XETEX_DEF_CODE, 6712618, xf_prim_init_none }, \ { "Udelcodenum", XETEX_DEF_CODE, DEL_CODE_BASE, xf_prim_init_none }, \ { "XeTeXdelcodenum", XETEX_DEF_CODE, DEL_CODE_BASE, xf_prim_init_none }, \ { "Udelcode", XETEX_DEF_CODE, 7827069, xf_prim_init_none }, \ { "XeTeXdelcode", XETEX_DEF_CODE, 7827069, xf_prim_init_none }, \ { "textfont", DEF_FAMILY, 2255401, xf_prim_init_none }, \ { "scriptfont", DEF_FAMILY, 2255657, xf_prim_init_none }, \ { "scriptscriptfont", DEF_FAMILY, 2255913, xf_prim_init_none }, \ { "nullfont", SET_FONT, 0, FROZEN_NULL_FONT }, \ { "font", DEF_FONT, 0, xf_prim_init_none }, \ { "count", REGISTER, 0, xf_prim_init_none }, \ { "dimen", REGISTER, 1, xf_prim_init_none }, \ { "skip", REGISTER, 2, xf_prim_init_none }, \ { "muskip", REGISTER, 3, xf_prim_init_none }, \ { "advance", ADVANCE, 0, xf_prim_init_none }, \ { "multiply", MULTIPLY, 0, xf_prim_init_none }, \ { "divide", DIVIDE, 0, xf_prim_init_none }, \ { "long", PREFIX, 1, xf_prim_init_none }, \ { "outer", PREFIX, 2, xf_prim_init_none }, \ { "global", PREFIX, 4, xf_prim_init_none }, \ { "protected", PREFIX, 8, xf_prim_init_none }, \ { "let", LET, 0, xf_prim_init_none }, \ { "futurelet", LET, 1, xf_prim_init_none }, \ { "chardef", SHORTHAND_DEF, CHAR_DEF_CODE, xf_prim_init_none }, \ { "mathchardef", SHORTHAND_DEF, MATH_CHAR_DEF_CODE, xf_prim_init_none }, \ { "countdef", SHORTHAND_DEF, COUNT_DEF_CODE, xf_prim_init_none }, \ { "dimendef", SHORTHAND_DEF, DIMEN_DEF_CODE, xf_prim_init_none }, \ { "skipdef", SHORTHAND_DEF, SKIP_DEF_CODE, xf_prim_init_none }, \ { "muskipdef", SHORTHAND_DEF, MU_SKIP_DEF_CODE, xf_prim_init_none }, \ { "toksdef", SHORTHAND_DEF, TOKS_DEF_CODE, xf_prim_init_none }, \ { "Umathcharnumdef", SHORTHAND_DEF, XETEX_MATH_CHAR_NUM_DEF_CODE, xf_prim_init_none }, \ { "XeTeXmathcharnumdef", SHORTHAND_DEF, XETEX_MATH_CHAR_NUM_DEF_CODE, xf_prim_init_none }, \ { "Umathchardef", SHORTHAND_DEF, XETEX_MATH_CHAR_DEF_CODE, xf_prim_init_none }, \ { "XeTeXmathchardef", SHORTHAND_DEF, XETEX_MATH_CHAR_DEF_CODE, xf_prim_init_none }, \ { "read", READ_TO_CS, 0, xf_prim_init_none }, \ { "readline", READ_TO_CS, 1, xf_prim_init_none }, \ { "def", DEF, 0, xf_prim_init_none }, \ { "gdef", DEF, 1, xf_prim_init_none }, \ { "edef", DEF, 2, xf_prim_init_none }, \ { "xdef", DEF, 3, xf_prim_init_none }, \ { "setbox", SET_BOX, 0, xf_prim_init_none }, \ { "hyphenation", HYPH_DATA, 0, xf_prim_init_none }, \ { "patterns", HYPH_DATA, 1, xf_prim_init_none }, \ { "batchmode", SET_INTERACTION, BATCH_MODE, xf_prim_init_none }, \ { "nonstopmode", SET_INTERACTION, NONSTOP_MODE, xf_prim_init_none }, \ { "scrollmode", SET_INTERACTION, SCROLL_MODE, xf_prim_init_none }, \ { "errorstopmode", SET_INTERACTION, ERROR_STOP_MODE, xf_prim_init_none }, \ { "expandafter", EXPAND_AFTER, 0, xf_prim_init_none }, \ { "unless", EXPAND_AFTER, 1, xf_prim_init_none }, \ { "noexpand", NO_EXPAND, 0, xf_prim_init_none }, \ { "primitive", NO_EXPAND, 1, xf_prim_init_none }, \ { "input", INPUT, 0, xf_prim_init_none }, \ { "endinput", INPUT, 1, xf_prim_init_none }, \ { "scantokens", INPUT, 2, xf_prim_init_none }, \ { "if", IF_TEST, IF_CHAR_CODE, xf_prim_init_none }, \ { "ifcat", IF_TEST, IF_CAT_CODE, xf_prim_init_none }, \ { "ifnum", IF_TEST, IF_INT_CODE, xf_prim_init_none }, \ { "ifdim", IF_TEST, IF_DIM_CODE, xf_prim_init_none }, \ { "ifodd", IF_TEST, IF_ODD_CODE, xf_prim_init_none }, \ { "ifvmode", IF_TEST, IF_VMODE_CODE, xf_prim_init_none }, \ { "ifhmode", IF_TEST, IF_HMODE_CODE, xf_prim_init_none }, \ { "ifmmode", IF_TEST, IF_MMODE_CODE, xf_prim_init_none }, \ { "ifinner", IF_TEST, IF_INNER_CODE, xf_prim_init_none }, \ { "ifvoid", IF_TEST, IF_VOID_CODE, xf_prim_init_none }, \ { "ifhbox", IF_TEST, IF_HBOX_CODE, xf_prim_init_none }, \ { "ifvbox", IF_TEST, IF_VBOX_CODE, xf_prim_init_none }, \ { "ifx", IF_TEST, IFX_CODE, xf_prim_init_none }, \ { "ifeof", IF_TEST, IF_EOF_CODE, xf_prim_init_none }, \ { "iftrue", IF_TEST, IF_TRUE_CODE, xf_prim_init_none }, \ { "iffalse", IF_TEST, IF_FALSE_CODE, xf_prim_init_none }, \ { "ifcase", IF_TEST, IF_CASE_CODE, xf_prim_init_none }, \ { "ifdefined", IF_TEST, IF_DEF_CODE, xf_prim_init_none }, \ { "ifcsname", IF_TEST, IF_CS_CODE, xf_prim_init_none }, \ { "iffontchar", IF_TEST, IF_FONT_CHAR_CODE, xf_prim_init_none }, \ { "ifincsname", IF_TEST, IF_IN_CSNAME_CODE, xf_prim_init_none }, \ { "ifprimitive", IF_TEST, IF_PRIMITIVE_CODE, xf_prim_init_none }, \ { "fi", FI_OR_ELSE, FI_CODE, FROZEN_FI }, \ { "else", FI_OR_ELSE, ELSE_CODE, xf_prim_init_none }, \ { "or", FI_OR_ELSE, OR_CODE, xf_prim_init_none }, \ { "csname", CS_NAME, 0, xf_prim_init_none }, \ { "number", CONVERT, NUMBER_CODE, xf_prim_init_none }, \ { "romannumeral", CONVERT, ROMAN_NUMERAL_CODE, xf_prim_init_none }, \ { "string", CONVERT, STRING_CODE, xf_prim_init_none }, \ { "meaning", CONVERT, MEANING_CODE, xf_prim_init_none }, \ { "fontname", CONVERT, FONT_NAME_CODE, xf_prim_init_none }, \ { "eTeXrevision", CONVERT, ETEX_REVISION_CODE, xf_prim_init_none }, \ { "expanded", CONVERT, EXPANDED_CODE, xf_prim_init_none }, \ { "leftmarginkern", CONVERT, LEFT_MARGIN_KERN_CODE, xf_prim_init_none }, \ { "rightmarginkern", CONVERT, RIGHT_MARGIN_KERN_CODE, xf_prim_init_none }, \ { "strcmp", CONVERT, PDF_STRCMP_CODE, xf_prim_init_none }, \ { "creationdate", CONVERT, PDF_CREATION_DATE_CODE, xf_prim_init_none }, \ { "filemoddate", CONVERT, PDF_FILE_MOD_DATE_CODE, xf_prim_init_none }, \ { "filesize", CONVERT, PDF_FILE_SIZE_CODE, xf_prim_init_none }, \ { "mdfivesum", CONVERT, PDF_MDFIVE_SUM_CODE, xf_prim_init_none }, \ { "filedump", CONVERT, PDF_FILE_DUMP_CODE, xf_prim_init_none }, \ { "uniformdeviate", CONVERT, UNIFORM_DEVIATE_CODE, xf_prim_init_none }, \ { "normaldeviate", CONVERT, NORMAL_DEVIATE_CODE, xf_prim_init_none }, \ { "XeTeXrevision", CONVERT, XETEX_REVISION_CODE, xf_prim_init_none }, \ { "XeTeXvariationname", CONVERT, XETEX_VARIATION_NAME_CODE, xf_prim_init_none }, \ { "XeTeXfeaturename", CONVERT, XETEX_FEATURE_NAME_CODE, xf_prim_init_none }, \ { "XeTeXselectorname", CONVERT, XETEX_SELECTOR_NAME_CODE, xf_prim_init_none }, \ { "XeTeXglyphname", CONVERT, XETEX_GLYPH_NAME_CODE, xf_prim_init_none }, \ { "Uchar", CONVERT, XETEX_UCHAR_CODE, xf_prim_init_none }, \ { "Ucharcat", CONVERT, XETEX_UCHARCAT_CODE, xf_prim_init_none }, \ { "jobname", CONVERT, JOB_NAME_CODE, xf_prim_init_none }, \ { "the", THE, SHOW_CODE, xf_prim_init_none }, \ { "unexpanded", THE, SHOW_BOX_CODE, xf_prim_init_none }, \ { "detokenize", THE, SHOW_TOKENS, xf_prim_init_none }, \ { "topmark", TOP_BOT_MARK, TOP_MARK_CODE, xf_prim_init_none }, \ { "firstmark", TOP_BOT_MARK, FIRST_MARK_CODE, xf_prim_init_none }, \ { "botmark", TOP_BOT_MARK, BOT_MARK_CODE, xf_prim_init_none }, \ { "splitfirstmark", TOP_BOT_MARK, SPLIT_FIRST_MARK_CODE, xf_prim_init_none }, \ { "splitbotmark", TOP_BOT_MARK, SPLIT_BOT_MARK_CODE, xf_prim_init_none }, \ { "topmarks", TOP_BOT_MARK, TT_TOP_MARKS_CODE, xf_prim_init_none }, \ { "firstmarks", TOP_BOT_MARK, TT_FIRST_MARKS_CODE, xf_prim_init_none }, \ { "botmarks", TOP_BOT_MARK, TT_BOT_MARKS_CODE, xf_prim_init_none }, \ { "splitfirstmarks", TOP_BOT_MARK, TT_SPLIT_FIRST_MARKS_CODE, xf_prim_init_none }, \ { "splitbotmarks", TOP_BOT_MARK, TT_SPLIT_BOT_MARKS_CODE, xf_prim_init_none }, \ { "pretolerance", ASSIGN_INT, INT_BASE + INT_PAR__pretolerance, xf_prim_init_none }, \ { "tolerance", ASSIGN_INT, INT_BASE + INT_PAR__tolerance, xf_prim_init_none }, \ { "linepenalty", ASSIGN_INT, INT_BASE + INT_PAR__line_penalty, xf_prim_init_none }, \ { "hyphenpenalty", ASSIGN_INT, INT_BASE + INT_PAR__hyphen_penalty, xf_prim_init_none }, \ { "exhyphenpenalty", ASSIGN_INT, INT_BASE + INT_PAR__ex_hyphen_penalty, xf_prim_init_none }, \ { "clubpenalty", ASSIGN_INT, INT_BASE + INT_PAR__club_penalty, xf_prim_init_none }, \ { "widowpenalty", ASSIGN_INT, INT_BASE + INT_PAR__widow_penalty, xf_prim_init_none }, \ { "displaywidowpenalty", ASSIGN_INT, INT_BASE + INT_PAR__display_widow_penalty, xf_prim_init_none }, \ { "brokenpenalty", ASSIGN_INT, INT_BASE + INT_PAR__broken_penalty, xf_prim_init_none }, \ { "binoppenalty", ASSIGN_INT, INT_BASE + INT_PAR__bin_op_penalty, xf_prim_init_none }, \ { "relpenalty", ASSIGN_INT, INT_BASE + INT_PAR__rel_penalty, xf_prim_init_none }, \ { "predisplaypenalty", ASSIGN_INT, INT_BASE + INT_PAR__pre_display_penalty, xf_prim_init_none }, \ { "postdisplaypenalty", ASSIGN_INT, INT_BASE + INT_PAR__post_display_penalty, xf_prim_init_none }, \ { "interlinepenalty", ASSIGN_INT, INT_BASE + INT_PAR__inter_line_penalty, xf_prim_init_none }, \ { "doublehyphendemerits", ASSIGN_INT, INT_BASE + INT_PAR__double_hyphen_demerits, xf_prim_init_none }, \ { "finalhyphendemerits", ASSIGN_INT, INT_BASE + INT_PAR__final_hyphen_demerits, xf_prim_init_none }, \ { "adjdemerits", ASSIGN_INT, INT_BASE + INT_PAR__adj_demerits, xf_prim_init_none }, \ { "mag", ASSIGN_INT, INT_BASE + INT_PAR__mag, xf_prim_init_none }, \ { "delimiterfactor", ASSIGN_INT, INT_BASE + INT_PAR__delimiter_factor, xf_prim_init_none }, \ { "looseness", ASSIGN_INT, INT_BASE + INT_PAR__looseness, xf_prim_init_none }, \ { "time", ASSIGN_INT, INT_BASE + INT_PAR__time, xf_prim_init_none }, \ { "day", ASSIGN_INT, INT_BASE + INT_PAR__day, xf_prim_init_none }, \ { "month", ASSIGN_INT, INT_BASE + INT_PAR__month, xf_prim_init_none }, \ { "year", ASSIGN_INT, INT_BASE + INT_PAR__year, xf_prim_init_none }, \ { "showboxbreadth", ASSIGN_INT, INT_BASE + INT_PAR__show_box_breadth, xf_prim_init_none }, \ { "showboxdepth", ASSIGN_INT, INT_BASE + INT_PAR__show_box_depth, xf_prim_init_none }, \ { "hbadness", ASSIGN_INT, INT_BASE + INT_PAR__hbadness, xf_prim_init_none }, \ { "vbadness", ASSIGN_INT, INT_BASE + INT_PAR__vbadness, xf_prim_init_none }, \ { "pausing", ASSIGN_INT, INT_BASE + INT_PAR__pausing, xf_prim_init_none }, \ { "tracingonline", ASSIGN_INT, INT_BASE + INT_PAR__tracing_online, xf_prim_init_none }, \ { "tracingmacros", ASSIGN_INT, INT_BASE + INT_PAR__tracing_macros, xf_prim_init_none }, \ { "tracingstats", ASSIGN_INT, INT_BASE + INT_PAR__tracing_stats, xf_prim_init_none }, \ { "tracingparagraphs", ASSIGN_INT, INT_BASE + INT_PAR__tracing_paragraphs, xf_prim_init_none }, \ { "tracingpages", ASSIGN_INT, INT_BASE + INT_PAR__tracing_pages, xf_prim_init_none }, \ { "tracingoutput", ASSIGN_INT, INT_BASE + INT_PAR__tracing_output, xf_prim_init_none }, \ { "tracinglostchars", ASSIGN_INT, INT_BASE + INT_PAR__tracing_lost_chars, xf_prim_init_none }, \ { "tracingcommands", ASSIGN_INT, INT_BASE + INT_PAR__tracing_commands, xf_prim_init_none }, \ { "tracingrestores", ASSIGN_INT, INT_BASE + INT_PAR__tracing_restores, xf_prim_init_none }, \ { "uchyph", ASSIGN_INT, INT_BASE + INT_PAR__uc_hyph, xf_prim_init_none }, \ { "outputpenalty", ASSIGN_INT, INT_BASE + INT_PAR__output_penalty, xf_prim_init_none }, \ { "maxdeadcycles", ASSIGN_INT, INT_BASE + INT_PAR__max_dead_cycles, xf_prim_init_none }, \ { "hangafter", ASSIGN_INT, INT_BASE + INT_PAR__hang_after, xf_prim_init_none }, \ { "floatingpenalty", ASSIGN_INT, INT_BASE + INT_PAR__floating_penalty, xf_prim_init_none }, \ { "globaldefs", ASSIGN_INT, INT_BASE + INT_PAR__global_defs, xf_prim_init_none }, \ { "fam", ASSIGN_INT, INT_BASE + INT_PAR__cur_fam, xf_prim_init_none }, \ { "escapechar", ASSIGN_INT, INT_BASE + INT_PAR__escape_char, xf_prim_init_none }, \ { "defaulthyphenchar", ASSIGN_INT, INT_BASE + INT_PAR__default_hyphen_char, xf_prim_init_none }, \ { "defaultskewchar", ASSIGN_INT, INT_BASE + INT_PAR__default_skew_char, xf_prim_init_none }, \ { "endlinechar", ASSIGN_INT, INT_BASE + INT_PAR__end_line_char, xf_prim_init_none }, \ { "newlinechar", ASSIGN_INT, INT_BASE + INT_PAR__new_line_char, xf_prim_init_none }, \ { "language", ASSIGN_INT, INT_BASE + INT_PAR__language, xf_prim_init_none }, \ { "lefthyphenmin", ASSIGN_INT, INT_BASE + INT_PAR__left_hyphen_min, xf_prim_init_none }, \ { "righthyphenmin", ASSIGN_INT, INT_BASE + INT_PAR__right_hyphen_min, xf_prim_init_none }, \ { "holdinginserts", ASSIGN_INT, INT_BASE + INT_PAR__holding_inserts, xf_prim_init_none }, \ { "errorcontextlines", ASSIGN_INT, INT_BASE + INT_PAR__error_context_lines, xf_prim_init_none }, \ { "tracingstacklevels", ASSIGN_INT, INT_BASE + INT_PAR__tracing_stack_levels, xf_prim_init_none }, \ { "tracingassigns", ASSIGN_INT, INT_BASE + INT_PAR__tracing_assigns, xf_prim_init_none }, \ { "tracinggroups", ASSIGN_INT, INT_BASE + INT_PAR__tracing_groups, xf_prim_init_none }, \ { "tracingifs", ASSIGN_INT, INT_BASE + INT_PAR__tracing_ifs, xf_prim_init_none }, \ { "tracingscantokens", ASSIGN_INT, INT_BASE + INT_PAR__tracing_scan_tokens, xf_prim_init_none }, \ { "tracingnesting", ASSIGN_INT, INT_BASE + INT_PAR__tracing_nesting, xf_prim_init_none }, \ { "predisplaydirection", ASSIGN_INT, INT_BASE + INT_PAR__pre_display_direction, xf_prim_init_none }, \ { "lastlinefit", ASSIGN_INT, INT_BASE + INT_PAR__last_line_fit, xf_prim_init_none }, \ { "savingvdiscards", ASSIGN_INT, INT_BASE + INT_PAR__saving_vdiscards, xf_prim_init_none }, \ { "savinghyphcodes", ASSIGN_INT, INT_BASE + INT_PAR__saving_hyph_codes, xf_prim_init_none }, \ { "suppressfontnotfounderror", ASSIGN_INT, INT_BASE + INT_PAR__suppress_fontnotfound_error, xf_prim_init_none }, \ { "XeTeXlinebreakpenalty", ASSIGN_INT, INT_BASE + INT_PAR__xetex_linebreak_penalty, xf_prim_init_none }, \ { "XeTeXprotrudechars", ASSIGN_INT, INT_BASE + INT_PAR__xetex_protrude_chars, xf_prim_init_none }, \ { "TeXXeTstate", ASSIGN_INT, INT_BASE + INT_PAR__texxet, xf_prim_init_none }, \ { "XeTeXdashbreakstate", ASSIGN_INT, INT_BASE + INT_PAR__xetex_dash_break, xf_prim_init_none }, \ { "XeTeXupwardsmode", ASSIGN_INT, INT_BASE + INT_PAR__xetex_upwards, xf_prim_init_none }, \ { "XeTeXuseglyphmetrics", ASSIGN_INT, INT_BASE + INT_PAR__xetex_use_glyph_metrics, xf_prim_init_none }, \ { "XeTeXinterchartokenstate", ASSIGN_INT, INT_BASE + INT_PAR__xetex_inter_char_tokens, xf_prim_init_none }, \ { "XeTeXinputnormalization", ASSIGN_INT, INT_BASE + INT_PAR__xetex_input_normalization, xf_prim_init_none }, \ { "XeTeXtracingfonts", ASSIGN_INT, INT_BASE + INT_PAR__xetex_tracing_fonts, xf_prim_init_none }, \ { "XeTeXinterwordspaceshaping", ASSIGN_INT, INT_BASE + INT_PAR__xetex_interword_space_shaping, xf_prim_init_none }, \ { "XeTeXgenerateactualtext", ASSIGN_INT, INT_BASE + INT_PAR__xetex_generate_actual_text, xf_prim_init_none }, \ { "XeTeXhyphenatablelength", ASSIGN_INT, INT_BASE + INT_PAR__xetex_hyphenatable_length, xf_prim_init_none }, \ { "synctex", ASSIGN_INT, INT_BASE + INT_PAR__synctex, xf_prim_init_none }, \ { "pdfoutput", ASSIGN_INT, INT_BASE + INT_PAR__pdfoutput, xf_prim_init_none }, \ { "parindent", ASSIGN_DIMEN, DIMEN_BASE + DIMEN_PAR__par_indent, xf_prim_init_none }, \ { "mathsurround", ASSIGN_DIMEN, DIMEN_BASE + DIMEN_PAR__math_surround, xf_prim_init_none }, \ { "lineskiplimit", ASSIGN_DIMEN, DIMEN_BASE + DIMEN_PAR__line_skip_limit, xf_prim_init_none }, \ { "hsize", ASSIGN_DIMEN, DIMEN_BASE + DIMEN_PAR__hsize, xf_prim_init_none }, \ { "vsize", ASSIGN_DIMEN, DIMEN_BASE + DIMEN_PAR__vsize, xf_prim_init_none }, \ { "maxdepth", ASSIGN_DIMEN, DIMEN_BASE + DIMEN_PAR__max_depth, xf_prim_init_none }, \ { "splitmaxdepth", ASSIGN_DIMEN, DIMEN_BASE + DIMEN_PAR__split_max_depth, xf_prim_init_none }, \ { "boxmaxdepth", ASSIGN_DIMEN, DIMEN_BASE + DIMEN_PAR__box_max_depth, xf_prim_init_none }, \ { "hfuzz", ASSIGN_DIMEN, DIMEN_BASE + DIMEN_PAR__hfuzz, xf_prim_init_none }, \ { "vfuzz", ASSIGN_DIMEN, DIMEN_BASE + DIMEN_PAR__vfuzz, xf_prim_init_none }, \ { "delimitershortfall", ASSIGN_DIMEN, DIMEN_BASE + DIMEN_PAR__delimiter_shortfall, xf_prim_init_none }, \ { "nulldelimiterspace", ASSIGN_DIMEN, DIMEN_BASE + DIMEN_PAR__null_delimiter_space, xf_prim_init_none }, \ { "scriptspace", ASSIGN_DIMEN, DIMEN_BASE + DIMEN_PAR__script_space, xf_prim_init_none }, \ { "predisplaysize", ASSIGN_DIMEN, DIMEN_BASE + DIMEN_PAR__pre_display_size, xf_prim_init_none }, \ { "displaywidth", ASSIGN_DIMEN, DIMEN_BASE + DIMEN_PAR__display_width, xf_prim_init_none }, \ { "displayindent", ASSIGN_DIMEN, DIMEN_BASE + DIMEN_PAR__display_indent, xf_prim_init_none }, \ { "overfullrule", ASSIGN_DIMEN, DIMEN_BASE + DIMEN_PAR__overfull_rule, xf_prim_init_none }, \ { "hangindent", ASSIGN_DIMEN, DIMEN_BASE + DIMEN_PAR__hang_indent, xf_prim_init_none }, \ { "hoffset", ASSIGN_DIMEN, DIMEN_BASE + DIMEN_PAR__h_offset, xf_prim_init_none }, \ { "voffset", ASSIGN_DIMEN, DIMEN_BASE + DIMEN_PAR__v_offset, xf_prim_init_none }, \ { "emergencystretch", ASSIGN_DIMEN, DIMEN_BASE + DIMEN_PAR__emergency_stretch, xf_prim_init_none }, \ { "pdfpagewidth", ASSIGN_DIMEN, DIMEN_BASE + DIMEN_PAR__pdf_page_width, xf_prim_init_none }, \ { "pdfpageheight", ASSIGN_DIMEN, DIMEN_BASE + DIMEN_PAR__pdf_page_height, xf_prim_init_none }, \ { "lineskip", ASSIGN_GLUE, GLUE_BASE + GLUE_PAR__line_skip, xf_prim_init_none }, \ { "baselineskip", ASSIGN_GLUE, GLUE_BASE + GLUE_PAR__baseline_skip, xf_prim_init_none }, \ { "parskip", ASSIGN_GLUE, GLUE_BASE + GLUE_PAR__par_skip, xf_prim_init_none }, \ { "abovedisplayskip", ASSIGN_GLUE, GLUE_BASE + GLUE_PAR__above_display_skip, xf_prim_init_none }, \ { "belowdisplayskip", ASSIGN_GLUE, GLUE_BASE + GLUE_PAR__below_display_skip, xf_prim_init_none }, \ { "abovedisplayshortskip", ASSIGN_GLUE, GLUE_BASE + GLUE_PAR__above_display_short_skip, xf_prim_init_none }, \ { "belowdisplayshortskip", ASSIGN_GLUE, GLUE_BASE + GLUE_PAR__below_display_short_skip, xf_prim_init_none }, \ { "leftskip", ASSIGN_GLUE, GLUE_BASE + GLUE_PAR__left_skip, xf_prim_init_none }, \ { "rightskip", ASSIGN_GLUE, GLUE_BASE + GLUE_PAR__right_skip, xf_prim_init_none }, \ { "topskip", ASSIGN_GLUE, GLUE_BASE + GLUE_PAR__top_skip, xf_prim_init_none }, \ { "splittopskip", ASSIGN_GLUE, GLUE_BASE + GLUE_PAR__split_top_skip, xf_prim_init_none }, \ { "tabskip", ASSIGN_GLUE, GLUE_BASE + GLUE_PAR__tab_skip, xf_prim_init_none }, \ { "spaceskip", ASSIGN_GLUE, GLUE_BASE + GLUE_PAR__space_skip, xf_prim_init_none }, \ { "xspaceskip", ASSIGN_GLUE, GLUE_BASE + GLUE_PAR__xspace_skip, xf_prim_init_none }, \ { "parfillskip", ASSIGN_GLUE, GLUE_BASE + GLUE_PAR__par_fill_skip, xf_prim_init_none }, \ { "XeTeXlinebreakskip", ASSIGN_GLUE, GLUE_BASE + GLUE_PAR__xetex_linebreak_skip, xf_prim_init_none }, \ { "thinmuskip", ASSIGN_MU_GLUE, GLUE_BASE + GLUE_PAR__thin_mu_skip, xf_prim_init_none }, \ { "medmuskip", ASSIGN_MU_GLUE, GLUE_BASE + GLUE_PAR__med_mu_skip, xf_prim_init_none }, \ { "thickmuskip", ASSIGN_MU_GLUE, GLUE_BASE + GLUE_PAR__thick_mu_skip, xf_prim_init_none }, \ { "parshape", SET_SHAPE, LOCAL_BASE + LOCAL__par_shape, xf_prim_init_none }, \ { "output", ASSIGN_TOKS, LOCAL_BASE + LOCAL__output_routine, xf_prim_init_none }, \ { "everypar", ASSIGN_TOKS, LOCAL_BASE + LOCAL__every_par, xf_prim_init_none }, \ { "everymath", ASSIGN_TOKS, LOCAL_BASE + LOCAL__every_math, xf_prim_init_none }, \ { "everydisplay", ASSIGN_TOKS, LOCAL_BASE + LOCAL__every_display, xf_prim_init_none }, \ { "everyhbox", ASSIGN_TOKS, LOCAL_BASE + LOCAL__every_hbox, xf_prim_init_none }, \ { "everyvbox", ASSIGN_TOKS, LOCAL_BASE + LOCAL__every_vbox, xf_prim_init_none }, \ { "everyjob", ASSIGN_TOKS, LOCAL_BASE + LOCAL__every_job, xf_prim_init_none }, \ { "everycr", ASSIGN_TOKS, LOCAL_BASE + LOCAL__every_cr, xf_prim_init_none }, \ { "errhelp", ASSIGN_TOKS, LOCAL_BASE + LOCAL__err_help, xf_prim_init_none }, \ { "everyeof", ASSIGN_TOKS, LOCAL_BASE + LOCAL__every_eof, xf_prim_init_none }, \ { "XeTeXinterchartoks", ASSIGN_TOKS, LOCAL_BASE + LOCAL__xetex_inter_char_toks, xf_prim_init_none }, \ { "TectonicCodaTokens", ASSIGN_TOKS, LOCAL_BASE + LOCAL__tectonic_coda_tokens, xf_prim_init_none }, \ { "interlinepenalties", SET_SHAPE, ETEX_PEN_BASE + ETEX_PENALTIES_PAR__inter_line_penalties, xf_prim_init_none }, \ { "clubpenalties", SET_SHAPE, ETEX_PEN_BASE + ETEX_PENALTIES_PAR__club_penalties, xf_prim_init_none }, \ { "widowpenalties", SET_SHAPE, ETEX_PEN_BASE + ETEX_PENALTIES_PAR__widow_penalties, xf_prim_init_none }, \ { "displaywidowpenalties", SET_SHAPE, ETEX_PEN_BASE + ETEX_PENALTIES_PAR__display_widow_penalties, xf_prim_init_none }, \ { NULL, 0, 0, 0 } #endif