From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- web/web2w/ctex.c | 26514 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 26514 insertions(+) create mode 100644 web/web2w/ctex.c (limited to 'web/web2w/ctex.c') diff --git a/web/web2w/ctex.c b/web/web2w/ctex.c new file mode 100644 index 0000000000..d7697c03ba --- /dev/null +++ b/web/web2w/ctex.c @@ -0,0 +1,26514 @@ +/*4:*/ +#line 261 "tex.w" +/*9:*/ +#line 340 "tex.w" + +#include +#include +#include +#include +#include +#include + +#define odd(X) ((X)&1) +#define chr(X) ((unsigned char)(X)) +#define ord(X) ((int)(X)) + +#if __SIZEOF_FLOAT__==4 +typedef float float32_t; +#else +#error float type must have size 4 +#endif + +#define banner "This is TeX, Version 3.14159265 (HINT)" \ + +#define mem_bot 0 \ + +#define mem_top 30000 \ + \ + +#define font_base 0 \ + +#define hash_size 2100 \ + +#define hash_prime 1777 +#define hyph_size 307 \ + \ + +#define done6 36 +#define incr(X) X= X+1 +#define decr(X) X= X-1 +#define negate(X) X= -X +#define loop while(true) +#define do_nothing +#define empty 0 \ + +#define text_char unsigned char +#define first_text_char 0 +#define last_text_char 255 \ + +#define null_code 00 +#define carriage_return 015 +#define invalid_code 0177 \ + +#define reset_OK(X) erstat(X) ==0 +#define rewrite_OK(X) erstat(X) ==0 \ + +#define t_open_in term_in.f= stdin +#define t_open_out term_out.f= stdout \ + +#define update_terminal fflush(term_out.f) +#define clear_terminal fflush(term_in.f) +#define wake_up_terminal do_nothing \ + +#define loc cur_input.loc_field \ + +#define si(X) X +#define so(X) X \ + +#define length(X) (str_start[X+1]-str_start[X]) \ + \ + +#define cur_length (pool_ptr-str_start[str_ptr]) \ + +#define append_char(X) \ +{str_pool[pool_ptr]= si(X) ;incr(pool_ptr) ; \ +} +#define flush_char decr(pool_ptr) +#define str_room(X) \ +{if(pool_ptr+X> pool_size) \ +overflow("pool size",pool_size-init_pool_ptr) ; \ + \ +} \ + +#define flush_string {decr(str_ptr) ;pool_ptr= str_start[str_ptr]; \ +} \ + +#define app_lc_hex(X) l= X; \ +if(l<10) append_char(l+'0') else append_char(l-10+'a') \ + +#define bad_pool(X) {wake_up_terminal;write_ln(term_out,X) ; \ +a_close(&pool_file) ;return false; \ +} +#define no_print 16 +#define term_only 17 +#define log_only 18 +#define term_and_log 19 +#define pseudo 20 +#define new_string 21 +#define max_selector 21 \ + +#define print_ASCII print \ + +#define prompt_input(X) {wake_up_terminal;print_str(X) ;term_input() ; \ +} \ + +#define batch_mode 0 +#define nonstop_mode 1 +#define scroll_mode 2 +#define error_stop_mode 3 +#define print_err(X) {if(interaction==error_stop_mode) wake_up_terminal; \ +print_nl("! ") ;print_str(X) ; \ +} \ + +#define spotless 0 +#define warning_issued 1 +#define error_message_issued 2 +#define fatal_error_stop 3 \ + +#define hlp1(X) help_line[0]= X;} +#define hlp2(X) help_line[1]= X;hlp1 +#define hlp3(X) help_line[2]= X;hlp2 +#define hlp4(X) help_line[3]= X;hlp3 +#define hlp5(X) help_line[4]= X;hlp4 +#define hlp6(X) help_line[5]= X;hlp5 +#define help0 help_ptr= 0 +#define help1 {help_ptr= 1;hlp1 +#define help2 {help_ptr= 2;hlp2 +#define help3 {help_ptr= 3;hlp3 +#define help4 {help_ptr= 4;hlp4 +#define help5 {help_ptr= 5;hlp5 +#define help6 {help_ptr= 6;hlp6 \ + +#define succumb {if(interaction==error_stop_mode) \ +interaction= scroll_mode; \ +if(log_opened) error() ; \ +if(interaction> batch_mode) debug_help() ; \ +history= fatal_error_stop;jump_out() ; \ +} \ + +#define check_interrupt {if(interrupt!=0) pause_for_instructions() ; \ +} \ + +#define unity 0200000 +#define two 0400000 \ + +#define nx_plus_y(X,Y,Z) mult_and_add(X,Y,Z,07777777777) +#define mult_integers(X,Y) mult_and_add(X,Y,0,017777777777) \ + +#define inf_bad 10000 \ + +#define set_glue_ratio_zero(X) X= 0.0 +#define set_glue_ratio_one(X) X= 1.0 +#define float(X) ((double) (X) ) +#define unfloat(X) ((glue_ratio) (X) ) +#define float_constant(X) ((double) (X) ) \ + +#define min_quarterword 0 +#define max_quarterword 255 +#define min_halfword 0 +#define max_halfword 65535 \ + +#define qi(X) X+min_quarterword \ + +#define qo(X) X-min_quarterword \ + +#define hi(X) X+min_halfword \ + +#define ho(X) X-min_halfword \ + \ + +#define sc i \ + +#define pointer halfword +#define null min_halfword \ + +#define link(X) mem[X].hh.rh +#define info(X) mem[X].hh.lh \ + +#define free_avail(X) \ +{link(X) = avail;avail= X; \ +decr_dyn_used; \ +} \ + +#define fast_get_avail(X) \ +{X= avail; \ +if(X==null) X= get_avail() ; \ +else{avail= link(X) ;link(X) = null; \ +incr_dyn_used; \ +} \ +} \ + +#define empty_flag max_halfword +#define is_empty(X) (link(X) ==empty_flag) +#define node_size info +#define llink(X) info(X+1) +#define rlink(X) link(X+1) \ + +#define type(X) mem[X].hh.b0 +#define subtype(X) mem[X].hh.b1 \ + +#define is_char_node(X) (X>=hi_mem_min) \ + +#define font type +#define character subtype \ + +#define hlist_node 0 +#define box_node_size 7 +#define width_offset 1 +#define depth_offset 2 +#define height_offset 3 +#define width(X) mem[X+width_offset].sc +#define depth(X) mem[X+depth_offset].sc +#define height(X) mem[X+height_offset].sc +#define shift_amount(X) mem[X+4].sc +#define list_offset 5 +#define list_ptr(X) link(X+list_offset) +#define glue_order(X) subtype(X+list_offset) +#define glue_sign(X) type(X+list_offset) +#define normal 0 +#define stretching 1 +#define shrinking 2 +#define glue_offset 6 +#define glue_set(X) mem[X+glue_offset].gr \ + \ + +#define vlist_node 1 \ + +#define rule_node 2 +#define rule_node_size 4 +#define null_flag -010000000000 +#define is_running(X) (X==null_flag) \ + +#define ins_node 3 +#define ins_node_size 5 +#define float_cost(X) mem[X+1].i +#define ins_ptr(X) info(X+4) +#define split_top_ptr(X) link(X+4) \ + +#define mark_node 4 +#define small_node_size 2 +#define mark_ptr(X) mem[X+1].i \ + +#define adjust_node 5 +#define adjust_ptr mark_ptr \ + +#define ligature_node 6 +#define lig_char(X) X+1 +#define lig_ptr(X) link(lig_char(X) ) \ + +#define disc_node 7 +#define replace_count subtype +#define pre_break llink +#define post_break rlink \ + +#define whatsit_node 8 \ + +#define math_node 9 +#define before 0 +#define after 1 \ + +#define precedes_break(X) (type(X) max_save_stack) \ +{max_save_stack= save_ptr; \ +if(max_save_stack> save_size-6) overflow("save size",save_size) ; \ + \ +} \ + +#define saved(X) save_stack[save_ptr+X].i \ + +#define cs_token_flag 07777 \ + +#define left_brace_token 00400 +#define left_brace_limit 01000 +#define right_brace_token 01000 +#define right_brace_limit 01400 +#define math_shift_token 01400 +#define tab_token 02000 +#define out_param_token 02400 +#define space_token 05040 +#define letter_token 05400 +#define other_token 06000 +#define match_token 06400 +#define end_match_token 07000 \ + +#define chr_cmd(X) {print_str(X) ;print_ASCII(chr_code) ; \ +} \ + +#define state cur_input.state_field +#define index cur_input.index_field +#define start cur_input.start_field +#define limit cur_input.limit_field +#define name cur_input.name_field \ + +#define mid_line 1 +#define skip_blanks (2+max_char_code) +#define new_line (3+max_char_code+max_char_code) \ + +#define terminal_input (name==0) +#define cur_file input_file[index] \ + +#define skipping 1 +#define defining 2 +#define matching 3 +#define aligning 4 +#define absorbing 5 \ + +#define token_list 0 +#define token_type index +#define param_start limit +#define parameter 0 +#define u_template 1 +#define v_template 2 +#define backed_up 3 +#define inserted 4 +#define macro 5 +#define output_text 6 +#define every_par_text 7 +#define every_math_text 8 +#define every_display_text 9 +#define every_hbox_text 10 +#define every_vbox_text 11 +#define every_job_text 12 +#define every_cr_text 13 +#define mark_text 14 +#define write_text 15 \ + +#define begin_pseudoprint \ +{l= tally;tally= 0;selector= pseudo; \ +trick_count= 1000000; \ +} +#define set_trick_count \ +{first_count= tally; \ +trick_count= tally+1+error_line-half_error_line; \ +if(trick_count max_in_stack) \ +{max_in_stack= input_ptr; \ +if(input_ptr==stack_size) overflow("input stack size",stack_size) ; \ + \ +} \ +input_stack[input_ptr]= cur_input; \ +incr(input_ptr) ; \ +} \ + +#define pop_input \ +{decr(input_ptr) ;cur_input= input_stack[input_ptr]; \ +} \ + +#define back_list(X) begin_token_list(X,backed_up) +#define ins_list(X) begin_token_list(X,inserted) \ + +#define any_state_plus(X) case mid_line+X:case skip_blanks+X:case new_line+X \ + +#define add_delims_to(X) X+math_shift:X+tab_mark:X+mac_param: \ +X+sub_mark:X+letter:X+other_char \ + +#define is_hex(X) (((X>='0') &&(X<='9') ) ||((X>='a') &&(X<='f') ) ) +#define hex_to_cur_chr \ +if(c<='9') cur_chr= c-'0';else cur_chr= c-'a'+10; \ +if(cc<='9') cur_chr= 16*cur_chr+cc-'0'; \ +else cur_chr= 16*cur_chr+cc-'a'+10 \ + +#define no_expand_flag 257 \ + +#define end_line_char_inactive (end_line_char<0) ||(end_line_char> 255) \ + +#define store_new_token(X) {q= get_avail() ;link(p) = q;info(q) = X; \ +p= q; \ +} +#define fast_store_new_token(X) {fast_get_avail(q) ;link(p) = q;info(q) = X; \ +p= q; \ +} \ + +#define top_mark_code 0 +#define first_mark_code 1 +#define bot_mark_code 2 +#define split_first_mark_code 3 +#define split_bot_mark_code 4 +#define top_mark cur_mark[top_mark_code] +#define first_mark cur_mark[first_mark_code] +#define bot_mark cur_mark[bot_mark_code] +#define split_first_mark cur_mark[split_first_mark_code] +#define split_bot_mark cur_mark[split_bot_mark_code] \ + +#define int_val 0 +#define dimen_val 1 +#define glue_val 2 +#define mu_val 3 +#define ident_val 4 +#define tok_val 5 \ + +#define scanned_result_end(X) cur_val_level= X;} +#define scanned_result(X) {cur_val= X;scanned_result_end \ + +#define input_line_no_code (glue_val+1) +#define badness_code (glue_val+2) \ + +#define max_dimen 07777777777 \ + +#define octal_token (other_token+'\'') +#define hex_token (other_token+'"') +#define alpha_token (other_token+'`') +#define point_token (other_token+'.') +#define continental_point_token (other_token+',') \ + +#define infinity 017777777777 +#define zero_token (other_token+'0') +#define A_token (letter_token+'A') +#define other_A_token (other_token+'A') \ + +#define scan_normal_dimen scan_dimen(false,false,false) \ + +#define set_conversion_end(X) denom= X;} +#define set_conversion(X) {num= X;set_conversion_end \ + +#define default_rule 26214 \ + +#define number_code 0 +#define roman_numeral_code 1 +#define string_code 2 +#define meaning_code 3 +#define font_name_code 4 +#define job_name_code 5 \ + +#define closed 2 +#define just_open 1 \ + +#define if_char_code 0 +#define if_cat_code 1 +#define if_int_code 2 +#define if_dim_code 3 +#define if_odd_code 4 +#define if_vmode_code 5 +#define if_hmode_code 6 +#define if_mmode_code 7 +#define if_inner_code 8 +#define if_void_code 9 +#define if_hbox_code 10 +#define if_vbox_code 11 +#define ifx_code 12 +#define if_eof_code 13 +#define if_true_code 14 +#define if_false_code 15 +#define if_case_code 16 \ + +#define if_node_size 2 +#define if_line_field(X) mem[X+1].i +#define if_code 1 +#define fi_code 2 +#define else_code 3 +#define or_code 4 \ + +#define get_x_token_or_active_char \ +{get_x_token() ; \ +if(cur_cmd==relax) if(cur_chr==no_expand_flag) \ +{cur_cmd= active_char; \ +cur_chr= cur_tok-cs_token_flag-active_base; \ +} \ +} \ + +#define append_to_name(X) {c= X;incr(k) ; \ +if(k<=file_name_size) name_of_file[k]= xchr[c]; \ +} \ + +#define format_default_length 20 +#define format_area_length 11 +#define format_ext_length 4 +#define format_extension_str ".fmt" \ + +#define pack_cur_name pack_file_name(cur_name,cur_area,cur_ext) \ + +#define no_tag 0 +#define lig_tag 1 +#define list_tag 2 +#define ext_tag 3 \ + +#define stop_flag qi(128) +#define kern_flag qi(128) +#define skip_byte(X) X.b0 +#define next_char(X) X.b1 +#define op_byte(X) X.b2 +#define rem_byte(X) X.b3 \ + +#define ext_top(X) X.b0 +#define ext_mid(X) X.b1 +#define ext_bot(X) X.b2 +#define ext_rep(X) X.b3 \ + +#define slant_code 1 +#define space_code 2 +#define space_stretch_code 3 +#define space_shrink_code 4 +#define x_height_code 5 +#define quad_code 6 +#define extra_space_code 7 \ + +#define non_char qi(256) +#define non_address 0 \ + +#define char_info_end(X) X].qqqq +#define char_info(X) font_info[char_base[X]+char_info_end +#define char_width_end(X) X.b0].sc +#define char_width(X) font_info[width_base[X]+char_width_end +#define char_exists(X) (X.b0> min_quarterword) +#define char_italic_end(X) (qo(X.b2) ) /4].sc +#define char_italic(X) font_info[italic_base[X]+char_italic_end +#define height_depth(X) qo(X.b1) +#define char_height_end(X) (X) /16].sc +#define char_height(X) font_info[height_base[X]+char_height_end +#define char_depth_end(X) (X) %16].sc +#define char_depth(X) font_info[depth_base[X]+char_depth_end +#define char_tag(X) ((qo(X.b2) ) %4) \ + +#define char_kern_end(X) 256*op_byte(X) +rem_byte(X) ].sc +#define char_kern(X) font_info[kern_base[X]+char_kern_end +#define kern_base_offset 256*(128+min_quarterword) +#define lig_kern_start(X) lig_kern_base[X]+rem_byte +#define lig_kern_restart_end(X) 256*op_byte(X) +rem_byte(X) +32768-kern_base_offset +#define lig_kern_restart(X) lig_kern_base[X]+lig_kern_restart_end \ + +#define param_end(X) param_base[X]].sc +#define param(X) font_info[X+param_end +#define slant param(slant_code) +#define space param(space_code) +#define space_stretch param(space_stretch_code) +#define space_shrink param(space_shrink_code) +#define x_height param(x_height_code) +#define quad param(quad_code) +#define extra_space param(extra_space_code) \ + +#define abort goto bad_tfm \ + +#define start_font_error_message print_err("Font ") ;sprint_cs(u) ; \ +print_char('=') ;print_file_name(nom,aire,empty_string) ; \ +if(s>=0) \ +{print_str(" at ") ;print_scaled(s) ;print_str("pt") ; \ +} \ +else if(s!=-1000) \ +{print_str(" scaled ") ;print_int(-s) ; \ +} \ + +#define fget get(tfm_file) +#define fbyte tfm_file.d +#define read_sixteen(X) {X= fbyte; \ +if(X> 127) abort; \ +fget;X= X*0400+fbyte; \ +} +#define store_four_quarters(X) {fget;a= fbyte;qw.b0= qi(a) ; \ +fget;b= fbyte;qw.b1= qi(b) ; \ +fget;c= fbyte;qw.b2= qi(c) ; \ +fget;d= fbyte;qw.b3= qi(d) ; \ +X= qw; \ +} \ + +#define check_byte_range(X) {if((X ec) ) abort;} +#define current_character_being_worked_on k+bc-fmem_ptr \ + +#define store_scaled(X) {fget;a= fbyte;fget;b= fbyte; \ +fget;c= fbyte;fget;d= fbyte; \ +sw= (((((d*z) /0400) +(c*z) ) /0400) +(b*z) ) /beta; \ +if(a==0) X= sw;else if(a==255) X= sw-alpha;else abort; \ +} \ + +#define check_existence(X) \ +{check_byte_range(X) ; \ +qw= char_info(f) (X) ; \ +if(!char_exists(qw) ) abort; \ +} \ + +#define adjust(X) X[f]= qo(X[f]) \ + \ + +#define set_char_0 0 +#define set1 128 +#define set_rule 132 +#define put_rule 137 +#define nop 138 +#define bop 139 +#define eop 140 +#define push 141 +#define pop 142 +#define right1 143 +#define w0 147 +#define w1 148 +#define x0 152 +#define x1 153 +#define down1 157 +#define y0 161 +#define y1 162 +#define z0 166 +#define z1 167 +#define fnt_num_0 171 +#define fnt1 235 +#define xxx1 239 +#define xxx4 242 +#define fnt_def1 243 +#define pre 247 +#define post 248 +#define post_post 249 \ + +#define id_byte 2 \ + +#define dvi_out(X) {dvi_buf[dvi_ptr]= X;incr(dvi_ptr) ; \ +if(dvi_ptr==dvi_limit) dvi_swap() ; \ +} \ + +#define movement_node_size 3 +#define location(X) mem[X+2].i \ + +#define y_here 1 +#define z_here 2 +#define yz_OK 3 +#define y_OK 4 +#define z_OK 5 +#define d_fixed 6 \ + +#define none_seen 0 +#define y_seen 6 +#define z_seen 12 \ + +#define synch_h if(cur_h!=dvi_h) \ +{movement(cur_h-dvi_h,right1) ;dvi_h= cur_h; \ +} +#define synch_v if(cur_v!=dvi_v) \ +{movement(cur_v-dvi_v,down1) ;dvi_v= cur_v; \ +} \ + +#define billion float_constant(1000000000) +#define vet_glue(X) glue_temp= X; \ +if(glue_temp> billion) \ +glue_temp= billion; \ +else if(glue_temp<-billion) \ +glue_temp= -billion \ + +#define exactly 0 +#define additional 1 +#define natural 0,additional \ + +#define noad_size 4 +#define nucleus(X) X+1 +#define supscr(X) X+2 +#define subscr(X) X+3 +#define math_type link +#define fam font +#define math_char 1 +#define sub_box 2 +#define sub_mlist 3 +#define math_text_char 4 \ + +#define ord_noad (unset_node+3) +#define op_noad (ord_noad+1) +#define bin_noad (ord_noad+2) +#define rel_noad (ord_noad+3) +#define open_noad (ord_noad+4) +#define close_noad (ord_noad+5) +#define punct_noad (ord_noad+6) +#define inner_noad (ord_noad+7) +#define limits 1 +#define no_limits 2 \ + +#define left_delimiter(X) X+4 +#define right_delimiter(X) X+5 +#define radical_noad (inner_noad+1) +#define radical_noad_size 5 +#define fraction_noad (radical_noad+1) +#define fraction_noad_size 6 +#define small_fam(X) mem[X].qqqq.b0 +#define small_char(X) mem[X].qqqq.b1 +#define large_fam(X) mem[X].qqqq.b2 +#define large_char(X) mem[X].qqqq.b3 +#define thickness width +#define default_code 010000000000 +#define numerator supscr +#define denominator subscr \ + +#define under_noad (fraction_noad+1) +#define over_noad (under_noad+1) +#define accent_noad (over_noad+1) +#define accent_noad_size 5 +#define accent_chr(X) X+4 +#define vcenter_noad (accent_noad+1) +#define left_noad (vcenter_noad+1) +#define right_noad (left_noad+1) +#define delimiter nucleus +#define scripts_allowed(X) (type(X) >=ord_noad) &&(type(X) null) \ +{link(t) = lig_ptr(lig_stack) ; \ +t= link(t) ;incr(j) ; \ +} \ +p= lig_stack;lig_stack= link(p) ;free_node(p,small_node_size) ; \ +if(lig_stack==null) set_cur_r else cur_r= character(lig_stack) ; \ +} \ + +#define advance_major_tail {major_tail= link(major_tail) ;incr(r_count) ; \ +} \ + +#define trie_link(X) trie[X].rh +#define trie_char(X) trie[X].b1 +#define trie_op(X) trie[X].b0 \ + +#define set_cur_lang if(language<=0) cur_lang= 0; \ +else if(language> 255) cur_lang= 0; \ +else cur_lang= language \ + +#define trie_root trie_l[0] \ + +#define trie_ref trie_hash +#define trie_back(X) trie[X].lh \ + +#define active_height active_width +#define cur_height active_height[1] +#define set_height_zero(X) active_height[X]= 0 \ + +#define deplorable 100000 \ + +#define inserts_only 1 \ + +#define box_there 2 \ + +#define page_ins_node_size 4 +#define inserting 0 +#define split_up 1 +#define broken_ptr(X) link(X+1) \ + +#define broken_ins(X) info(X+1) +#define last_ins_ptr(X) link(X+2) +#define best_ins_ptr(X) info(X+2) \ + +#define page_goal page_so_far[0] +#define page_total page_so_far[1] +#define page_shrink page_so_far[6] +#define page_depth page_so_far[7] \ + +#define print_plus_end(X) print_str(X) ;} +#define print_plus(X) if(page_so_far[X]!=0) \ +{print_str(" plus ") ;print_scaled(page_so_far[X]) ;print_plus_end \ + +#define set_page_so_far_zero(X) page_so_far[X]= 0 \ + +#define contrib_tail nest[0].tail_field \ + +#define adjust_space_factor \ +main_s= sf_code(cur_chr) ; \ +if(main_s==1000) space_factor= 1000; \ +else if(main_s<1000) \ +{if(main_s> 0) space_factor= main_s; \ +} \ +else if(space_factor<1000) space_factor= 1000; \ +else space_factor= main_s \ + +#define pack_lig(X) \ +{main_p= new_ligature(main_f,cur_l,link(cur_q) ) ; \ +if(lft_hit) \ +{subtype(main_p) = 2;lft_hit= false; \ +} \ +if(X) if(lig_stack==null) \ +{incr(subtype(main_p) ) ;rt_hit= false; \ +} \ +link(cur_q) = main_p;tail= main_p;ligature_present= false; \ +} \ + +#define wrapup(X) if(cur_l null) \ +if(character(tail) ==qi(hyphen_char[main_f]) ) ins_disc= true; \ +if(ligature_present) pack_lig(X) ; \ +if(ins_disc) \ +{ins_disc= false; \ +if(mode> 0) tail_append(new_disc() ) ; \ +} \ +} \ + +#define any_mode(X) case vmode+X:case hmode+X:case mmode+X \ + +#define non_math(X) case vmode+X:case hmode+X \ + +#define fil_code 0 +#define fill_code 1 +#define ss_code 2 +#define fil_neg_code 3 +#define skip_code 4 +#define mskip_code 5 \ + +#define box_flag 010000000000 +#define ship_out_flag box_flag+512 +#define leader_flag box_flag+513 +#define box_code 0 +#define copy_code 1 +#define last_box_code 2 +#define vsplit_code 3 +#define vtop_code 4 \ + +#define fam_in_range ((cur_fam>=0) &&(cur_fam<16) ) \ + +#define above_code 0 +#define over_code 1 +#define atop_code 2 +#define delimited_code 3 \ + +#define global (a>=4) +#define define(X,Y,Z) if(global) geq_define(X,Y,Z) ;else eq_define(X,Y,Z) +#define word_define(X,Y) if(global) geq_word_define(X,Y) ;else eq_word_define(X,Y) \ + +#define char_def_code 0 +#define math_char_def_code 1 +#define count_def_code 2 +#define dimen_def_code 3 +#define skip_def_code 4 +#define mu_skip_def_code 5 +#define toks_def_code 6 \ + +#define show_code 0 +#define show_box_code 1 +#define show_the_code 2 +#define show_lists 3 \ + +#define too_small(X) {wake_up_terminal; \ +wterm_ln("---! Must increase the %s",X) ; \ + \ +goto bad_fmt; \ +} \ + +#define dump_wd(X) {fmt_file.d= X;put(fmt_file) ;} +#define dump_int(X) {fmt_file.d.i= X;put(fmt_file) ;} +#define dump_hh(X) {fmt_file.d.hh= X;put(fmt_file) ;} +#define dump_qqqq(X) {fmt_file.d.qqqq= X;put(fmt_file) ;} \ + +#define undump_wd(X) {get(fmt_file) ;X= fmt_file.d;} +#define undump_int(X) {get(fmt_file) ;X= fmt_file.d.i;} +#define undump_hh(X) {get(fmt_file) ;X= fmt_file.d.hh;} +#define undump_qqqq(X) {get(fmt_file) ;X= fmt_file.d.qqqq;} +#define undump_end_end(X) X= x;} +#define undump_end(X) (x> X) ) goto bad_fmt;else undump_end_end +#define undump(X) {undump_int(x) ;if((x X) undump_size_end_end +#define undump_size(X) {undump_int(x) ; \ +if(x?" \ +"@ABCDEFGHIJKLMNO" \ +"PQRSTUVWXYZ[\\]^_" \ +"`abcdefghijklmno" \ +"pqrstuvwxyz{|}~^^?" \ +"^^80^^81^^82^^83^^84^^85^^86^^87^^88^^89^^8a^^8b^^8c^^8d^^8e^^8f" \ +"^^90^^91^^92^^93^^94^^95^^96^^97^^98^^99^^9a^^9b^^9c^^9d^^9e^^9f" \ +"^^a0^^a1^^a2^^a3^^a4^^a5^^a6^^a7^^a8^^a9^^aa^^ab^^ac^^ad^^ae^^af" \ +"^^b0^^b1^^b2^^b3^^b4^^b5^^b6^^b7^^b8^^b9^^ba^^bb^^bc^^bd^^be^^bf" \ +"^^c0^^c1^^c2^^c3^^c4^^c5^^c6^^c7^^c8^^c9^^ca^^cb^^cc^^cd^^ce^^cf" \ +"^^d0^^d1^^d2^^d3^^d4^^d5^^d6^^d7^^d8^^d9^^da^^db^^dc^^dd^^de^^df" \ +"^^e0^^e1^^e2^^e3^^e4^^e5^^e6^^e7^^e8^^e9^^ea^^eb^^ec^^ed^^ee^^ef" \ +"^^f0^^f1^^f2^^f3^^f4^^f5^^f6^^f7^^f8^^f9^^fa^^fb^^fc^^fd^^fe^^ff" +#define str_start_0_255 0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45, \ +48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93, \ +96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111, \ +112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127, \ +128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, \ +144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159, \ +160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175, \ +176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191, \ +194,198,202,206,210,214,218,222,226,230,234,238,242,246,250,254, \ +258,262,266,270,274,278,282,286,290,294,298,302,306,310,314,318, \ +322,326,330,334,338,342,346,350,354,358,362,366,370,374,378,382, \ +386,390,394,398,402,406,410,414,418,422,426,430,434,438,442,446, \ +450,454,458,462,466,470,474,478,482,486,490,494,498,502,506,510, \ +514,518,522,526,530,534,538,542,546,550,554,558,562,566,570,574, \ +578,582,586,590,594,598,602,606,610,614,618,622,626,630,634,638, \ +642,646,650,654,658,662,666,670,674,678,682,686,690,694,698,702, +#define str_256 "???" +#define str_257 "m2d5c2l5x2v5i" +#define str_258 "batchmode" +#define str_259 "nonstopmode" +#define str_260 "scrollmode" +#define str_261 "CLOBBERED." +#define str_262 "fil" +#define str_263 "unset" +#define str_264 "rule(" +#define str_265 "insert" +#define str_266 "glue" +#define str_267 "nonscript" +#define str_268 "mskip" +#define str_269 "mu" +#define str_270 "" +#define empty_string 270 +#define str_271 "kern" +#define str_272 "mkern" +#define str_273 "math" +#define str_274 "penalty " +#define str_275 "discretionary" +#define str_276 "mark" +#define str_277 "vadjust" +#define str_278 "flushing" +#define str_279 "copying" +#define str_280 "lineskip" +#define str_281 "baselineskip" +#define str_282 "parskip" +#define str_283 "abovedisplayskip" +#define str_284 "belowdisplayskip" +#define str_285 "abovedisplayshortskip" +#define str_286 "belowdisplayshortskip" +#define str_287 "leftskip" +#define str_288 "rightskip" +#define str_289 "topskip" +#define str_290 "splittopskip" +#define str_291 "tabskip" +#define str_292 "spaceskip" +#define str_293 "xspaceskip" +#define str_294 "parfillskip" +#define str_295 "thinmuskip" +#define str_296 "medmuskip" +#define str_297 "thickmuskip" +#define str_298 "skip" +#define str_299 "muskip" +#define str_300 "pt" +#define str_301 "output" +#define str_302 "everypar" +#define str_303 "everymath" +#define str_304 "everydisplay" +#define str_305 "everyhbox" +#define str_306 "everyvbox" +#define str_307 "everyjob" +#define str_308 "everycr" +#define str_309 "errhelp" +#define str_310 "toks" +#define str_311 "parshape" +#define str_312 "box" +#define str_313 "textfont" +#define str_314 "scriptfont" +#define str_315 "scriptscriptfont" +#define str_316 "catcode" +#define str_317 "lccode" +#define str_318 "uccode" +#define str_319 "sfcode" +#define str_320 "mathcode" +#define str_321 "pretolerance" +#define str_322 "tolerance" +#define str_323 "linepenalty" +#define str_324 "hyphenpenalty" +#define str_325 "exhyphenpenalty" +#define str_326 "clubpenalty" +#define str_327 "widowpenalty" +#define str_328 "displaywidowpenalty" +#define str_329 "brokenpenalty" +#define str_330 "binoppenalty" +#define str_331 "relpenalty" +#define str_332 "predisplaypenalty" +#define str_333 "postdisplaypenalty" +#define str_334 "interlinepenalty" +#define str_335 "doublehyphendemerits" +#define str_336 "finalhyphendemerits" +#define str_337 "adjdemerits" +#define str_338 "mag" +#define str_339 "delimiterfactor" +#define str_340 "looseness" +#define str_341 "time" +#define str_342 "day" +#define str_343 "month" +#define str_344 "year" +#define str_345 "showboxbreadth" +#define str_346 "showboxdepth" +#define str_347 "hbadness" +#define str_348 "vbadness" +#define str_349 "pausing" +#define str_350 "tracingonline" +#define str_351 "tracingmacros" +#define str_352 "tracingstats" +#define str_353 "tracingparagraphs" +#define str_354 "tracingpages" +#define str_355 "tracingoutput" +#define str_356 "tracinglostchars" +#define str_357 "tracingcommands" +#define str_358 "tracingrestores" +#define str_359 "uchyph" +#define str_360 "outputpenalty" +#define str_361 "maxdeadcycles" +#define str_362 "hangafter" +#define str_363 "floatingpenalty" +#define str_364 "globaldefs" +#define str_365 "fam" +#define str_366 "escapechar" +#define str_367 "defaulthyphenchar" +#define str_368 "defaultskewchar" +#define str_369 "endlinechar" +#define str_370 "newlinechar" +#define str_371 "language" +#define str_372 "lefthyphenmin" +#define str_373 "righthyphenmin" +#define str_374 "holdinginserts" +#define str_375 "errorcontextlines" +#define str_376 "count" +#define str_377 "delcode" +#define str_378 "parindent" +#define str_379 "mathsurround" +#define str_380 "lineskiplimit" +#define str_381 "hsize" +#define str_382 "vsize" +#define str_383 "maxdepth" +#define str_384 "splitmaxdepth" +#define str_385 "boxmaxdepth" +#define str_386 "hfuzz" +#define str_387 "vfuzz" +#define str_388 "delimitershortfall" +#define str_389 "nulldelimiterspace" +#define str_390 "scriptspace" +#define str_391 "predisplaysize" +#define str_392 "displaywidth" +#define str_393 "displayindent" +#define str_394 "overfullrule" +#define str_395 "hangindent" +#define str_396 "hoffset" +#define str_397 "voffset" +#define str_398 "emergencystretch" +#define str_399 "dimen" +#define str_400 "notexpanded:" +#define str_401 "csname" +#define str_402 "endcsname" +#define str_403 "IMPOSSIBLE." +#define str_404 "NONEXISTENT." +#define str_405 "accent" +#define str_406 "advance" +#define str_407 "afterassignment" +#define str_408 "aftergroup" +#define str_409 "begingroup" +#define str_410 "char" +#define str_411 "delimiter" +#define str_412 "divide" +#define str_413 "endgroup" +#define str_414 "expandafter" +#define str_415 "font" +#define str_416 "fontdimen" +#define str_417 "halign" +#define str_418 "hrule" +#define str_419 "ignorespaces" +#define str_420 "mathaccent" +#define str_421 "mathchar" +#define str_422 "mathchoice" +#define str_423 "multiply" +#define str_424 "noalign" +#define str_425 "noboundary" +#define str_426 "noexpand" +#define str_427 "omit" +#define str_428 "penalty" +#define str_429 "prevgraf" +#define str_430 "radical" +#define str_431 "read" +#define str_432 "relax" +#define str_433 "setbox" +#define str_434 "the" +#define str_435 "valign" +#define str_436 "vcenter" +#define str_437 "vrule" +#define str_438 "curlevel" +#define str_439 "retaining" +#define str_440 "restoring" +#define str_441 "ETC." +#define str_442 "BAD." +#define str_443 "write" +#define str_444 "par" +#define str_445 "input" +#define str_446 "endinput" +#define str_447 "topmark" +#define str_448 "firstmark" +#define str_449 "botmark" +#define str_450 "splitfirstmark" +#define str_451 "splitbotmark" +#define str_452 "spacefactor" +#define str_453 "prevdepth" +#define str_454 "deadcycles" +#define str_455 "insertpenalties" +#define str_456 "wd" +#define str_457 "ht" +#define str_458 "dp" +#define str_459 "lastpenalty" +#define str_460 "lastkern" +#define str_461 "lastskip" +#define str_462 "inputlineno" +#define str_463 "badness" +#define str_464 "true" +#define str_465 "em" +#define str_466 "ex" +#define str_467 "in" +#define str_468 "pc" +#define str_469 "cm" +#define str_470 "mm" +#define str_471 "bp" +#define str_472 "dd" +#define str_473 "cc" +#define str_474 "sp" +#define str_475 "plus" +#define str_476 "minus" +#define str_477 "width" +#define str_478 "height" +#define str_479 "depth" +#define str_480 "number" +#define str_481 "romannumeral" +#define str_482 "string" +#define str_483 "meaning" +#define str_484 "fontname" +#define str_485 "jobname" +#define str_486 "if" +#define str_487 "ifcat" +#define str_488 "ifnum" +#define str_489 "ifdim" +#define str_490 "ifodd" +#define str_491 "ifvmode" +#define str_492 "ifhmode" +#define str_493 "ifmmode" +#define str_494 "ifinner" +#define str_495 "ifvoid" +#define str_496 "ifhbox" +#define str_497 "ifvbox" +#define str_498 "ifx" +#define str_499 "ifeof" +#define str_500 "iftrue" +#define str_501 "iffalse" +#define str_502 "ifcase" +#define str_503 "fi" +#define str_504 "or" +#define str_505 "else" +#define str_506 "TeXinputs/" +#define TEX_area 506 +#define str_507 "TeXfonts/" +#define TEX_font_area 507 +#define str_508 ".fmt" +#define format_extension 508 +#define str_509 ".log" +#define str_510 ".dvi" +#define str_511 "input file name" +#define str_512 ".tex" +#define str_513 "texput" +#define str_514 "nullfont" +#define str_515 ".tfm" +#define str_516 "vlistout" +#define str_517 "to" +#define str_518 "spread" +#define str_519 "vpack" +#define str_520 "displaystyle" +#define str_521 "textstyle" +#define str_522 "scriptstyle" +#define str_523 "scriptscriptstyle" +#define str_524 "mathord" +#define str_525 "mathop" +#define str_526 "mathbin" +#define str_527 "mathrel" +#define str_528 "mathopen" +#define str_529 "mathclose" +#define str_530 "mathpunct" +#define str_531 "mathinner" +#define str_532 "overline" +#define str_533 "underline" +#define str_534 "left" +#define str_535 "right" +#define str_536 "limits" +#define str_537 "nolimits" +#define str_538 "fraction, thickness " +#define str_539 "mlist1" +#define str_540 "mlist2" +#define str_541 "mlist3" +#define str_542 "0234000122*4000133**3**344*0400400*000000234000111*1111112341011" +#define math_spacing 542 +#define str_543 "mlist4" +#define str_544 "span" +#define str_545 "cr" +#define str_546 "crcr" +#define str_547 "endtemplate" +#define str_548 "endv" +#define str_549 "256 spans" +#define str_550 "align1" +#define str_551 "align0" +#define str_552 "disc1" +#define str_553 "disc2" +#define str_554 "paragraph" +#define str_555 "disc3" +#define str_556 "disc4" +#define str_557 "line breaking" +#define str_558 "hyphenation" +#define str_559 "patterns" +#define str_560 "pruning" +#define str_561 "vertbreak" +#define str_562 "vsplit" +#define str_563 "vbox" +#define str_564 "pagegoal" +#define str_565 "pagetotal" +#define str_566 "pagestretch" +#define str_567 "pagefilstretch" +#define str_568 "pagefillstretch" +#define str_569 "pagefilllstretch" +#define str_570 "pageshrink" +#define str_571 "pagedepth" +#define str_572 "page" +#define str_573 "end" +#define str_574 "dump" +#define str_575 "hskip" +#define str_576 "hfil" +#define str_577 "hfill" +#define str_578 "hss" +#define str_579 "hfilneg" +#define str_580 "vskip" +#define str_581 "vfil" +#define str_582 "vfill" +#define str_583 "vss" +#define str_584 "vfilneg" +#define str_585 "right." +#define str_586 "rightbrace" +#define str_587 "moveleft" +#define str_588 "moveright" +#define str_589 "raise" +#define str_590 "lower" +#define str_591 "copy" +#define str_592 "lastbox" +#define str_593 "vtop" +#define str_594 "hbox" +#define str_595 "shipout" +#define str_596 "leaders" +#define str_597 "cleaders" +#define str_598 "xleaders" +#define str_599 "indent" +#define str_600 "noindent" +#define str_601 "unpenalty" +#define str_602 "unkern" +#define str_603 "unskip" +#define str_604 "unhbox" +#define str_605 "unhcopy" +#define str_606 "unvbox" +#define str_607 "unvcopy" +#define str_608 "eqno" +#define str_609 "leqno" +#define str_610 "displaylimits" +#define str_611 "above" +#define str_612 "over" +#define str_613 "atop" +#define str_614 "abovewithdelims" +#define str_615 "overwithdelims" +#define str_616 "atopwithdelims" +#define str_617 "display" +#define str_618 "long" +#define str_619 "outer" +#define str_620 "global" +#define str_621 "def" +#define str_622 "gdef" +#define str_623 "edef" +#define str_624 "xdef" +#define str_625 "prefix" +#define str_626 "inaccessible" +#define str_627 "let" +#define str_628 "futurelet" +#define str_629 "chardef" +#define str_630 "mathchardef" +#define str_631 "countdef" +#define str_632 "dimendef" +#define str_633 "skipdef" +#define str_634 "muskipdef" +#define str_635 "toksdef" +#define str_636 "by" +#define str_637 "hyphenchar" +#define str_638 "skewchar" +#define str_639 "FONT" +#define str_640 "at" +#define str_641 "scaled" +#define str_642 "errorstopmode" +#define str_643 "openin" +#define str_644 "closein" +#define str_645 "message" +#define str_646 "errmessage" +#define str_647 "lowercase" +#define str_648 "uppercase" +#define str_649 "show" +#define str_650 "showbox" +#define str_651 "showthe" +#define str_652 "showlists" +#define str_653 "long macro" +#define str_654 "outer macro" +#define str_655 "outer endtemplate" +#define str_656 " (INITEX)" +#define str_657 "end occurred " +#define str_658 "openout" +#define str_659 "closeout" +#define str_660 "special" +#define str_661 "immediate" +#define str_662 "setlanguage" +#define str_663 "ext1" +#define str_664 "ext2" +#define str_665 "ext3" +#define str_666 "endwrite" +#define str_667 "ext4" + +#line 358 "tex.w" + + +/*:9*//*56:*/ +#line 1447 "tex.w" + +#define put(file) fwrite(&((file).d),sizeof((file).d),1,(file).f) +#define get(file) fread(&((file).d),sizeof((file).d),1,(file).f) + +#define reset(file,name,mode) ((file).f= fopen((char *)(name)+1,mode),\ + (file).f!=NULL?get(file):0) +#define rewrite(file,name,mode) ((file).f= fopen((char *)(name)+1,mode)) +#define close(file) fclose((file).f) +#define eof(file) feof((file).f) +#define eoln(file) ((file).d=='\n'||eof(file)) +#define erstat(file) ((file).f==NULL?-1:ferror((file).f)) + +#define read(file,x) ((x)= (file).d,get(file)) +#define read_ln(file) do get(file); while (!eoln(file)) + +#define write(file, format,...) fprintf(file.f,format,## __VA_ARGS__) +#define write_ln(file,...) write(file,__VA_ARGS__"\n") + +#define wterm(format,...) write(term_out,format, ## __VA_ARGS__) +#define wterm_ln(format,...) wterm(format "\n", ## __VA_ARGS__) +#define wterm_cr write(term_out,"\n") +#define wlog(format, ...) write(log_file,format, ## __VA_ARGS__) +#define wlog_ln(format, ...) wlog(format "\n", ## __VA_ARGS__) +#define wlog_cr write(log_file,"\n") + +/*:56*/ +#line 261 "tex.w" + + +/*6:*/ +#line 289 "tex.w" + + + + +/*:6*/ +#line 263 "tex.w" + +/*11:*/ +#line 396 "tex.w" + +enum{mem_max= 30000}; + + +enum{mem_min= 0}; + + +enum{buf_size= 500}; + + +enum{error_line= 72}; +enum{half_error_line= 42}; + +enum{max_print_line= 79}; +enum{stack_size= 200}; +enum{max_in_open= 6}; + +enum{font_max= 75}; + +enum{font_mem_size= 20000}; +enum{param_size= 60}; +enum{nest_size= 40}; +enum{max_strings= 3000}; +enum{string_vacancies= 8000}; + + +enum{pool_size= 32000}; + + + +enum{save_size= 600}; + +enum{trie_size= 8000}; + +enum{trie_op_size= 500}; +enum{dvi_buf_size= 800}; +enum{file_name_size= 40}; +const char*pool_name= "TeXformats:TEX.POOL "; + + + +/*:11*/ +#line 264 "tex.w" + +/*18:*/ +#line 539 "tex.w" + +typedef uint8_t ASCII_code; + +/*:18*//*25:*/ +#line 774 "tex.w" + +typedef uint8_t eight_bits; +typedef struct{FILE*f;text_char d;}alpha_file; +typedef struct{FILE*f;eight_bits d;}byte_file; + +/*:25*//*38:*/ +#line 1132 "tex.w" + +typedef uint16_t pool_pointer; +typedef uint16_t str_number; +typedef uint8_t packed_ASCII_code; + +/*:38*//*101:*/ +#line 2198 "tex.w" + +typedef int scaled; +typedef uint32_t nonnegative_integer; +typedef uint8_t small_number; + +/*:101*//*109:*/ +#line 2390 "tex.w" + +typedef float32_t glue_ratio; + +/*:109*//*113:*/ +#line 2494 "tex.w" + +typedef uint8_t quarterword; +typedef uint16_t halfword; +typedef uint8_t two_choices; +typedef uint8_t four_choices; +typedef struct{ +halfword rh; +union{ +halfword lh; +struct{quarterword b0;quarterword b1;}; +};}two_halves; +typedef struct{ +quarterword b0; +quarterword b1; +quarterword b2; +quarterword b3; +}four_quarters; +typedef struct{ +union{ +int i; +glue_ratio gr; +two_halves hh; +four_quarters qqqq; +};}memory_word; +typedef struct{FILE*f;memory_word d;}word_file; + +/*:113*//*150:*/ +#line 3212 "tex.w" + +typedef uint8_t glue_ord; + +/*:150*//*212:*/ +#line 4369 "tex.w" + +typedef struct{int16_t mode_field; +pointer head_field,tail_field; +int pg_field,ml_field; +memory_word aux_field; +}list_state_record; + +/*:212*//*269:*/ +#line 5934 "tex.w" + +typedef uint8_t group_code; + +/*:269*//*300:*/ +#line 6514 "tex.w" + +typedef struct{ +quarterword state_field,index_field; +halfword start_field,loc_field,limit_field,name_field; +}in_state_record; + +/*:300*//*548:*/ +#line 10743 "tex.w" + +typedef uint8_t internal_font_number; +typedef uint16_t font_index; + +/*:548*//*594:*/ +#line 11923 "tex.w" + +typedef uint16_t dvi_index; + +/*:594*//*920:*/ +#line 18138 "tex.w" + +typedef uint16_t trie_pointer; + +/*:920*//*925:*/ +#line 18204 "tex.w" + +typedef uint16_t hyph_pointer; + +/*:925*/ +#line 265 "tex.w" + +/*13:*/ +#line 467 "tex.w" + +int bad; + +/*:13*//*20:*/ +#line 579 "tex.w" + +ASCII_code xord[256]; + +uint8_t xchr[256]; + + +/*:20*//*26:*/ +#line 791 "tex.w" + +uint8_t name_of_file0[file_name_size+1]= {0},*const name_of_file= name_of_file0-1; + +uint8_t name_length; + + +/*:26*//*30:*/ +#line 891 "tex.w" + +ASCII_code buffer[buf_size+1]; +uint16_t first; +uint16_t last; +uint16_t max_buf_stack; + +/*:30*//*32:*/ +#line 964 "tex.w" + +alpha_file term_in; +alpha_file term_out; + +/*:32*//*39:*/ +#line 1137 "tex.w" + +/*1795:*/ +#line 26438 "tex.w" + +typedef enum{ +str_start_256= sizeof(str_0_255)-1, +str_start_257= str_start_256+sizeof(str_256)-1, +str_start_258= str_start_257+sizeof(str_257)-1, +str_start_259= str_start_258+sizeof(str_258)-1, +str_start_260= str_start_259+sizeof(str_259)-1, +str_start_261= str_start_260+sizeof(str_260)-1, +str_start_262= str_start_261+sizeof(str_261)-1, +str_start_263= str_start_262+sizeof(str_262)-1, +str_start_264= str_start_263+sizeof(str_263)-1, +str_start_265= str_start_264+sizeof(str_264)-1, +str_start_266= str_start_265+sizeof(str_265)-1, +str_start_267= str_start_266+sizeof(str_266)-1, +str_start_268= str_start_267+sizeof(str_267)-1, +str_start_269= str_start_268+sizeof(str_268)-1, +str_start_270= str_start_269+sizeof(str_269)-1, +str_start_271= str_start_270+sizeof(str_270)-1, +str_start_272= str_start_271+sizeof(str_271)-1, +str_start_273= str_start_272+sizeof(str_272)-1, +str_start_274= str_start_273+sizeof(str_273)-1, +str_start_275= str_start_274+sizeof(str_274)-1, +str_start_276= str_start_275+sizeof(str_275)-1, +str_start_277= str_start_276+sizeof(str_276)-1, +str_start_278= str_start_277+sizeof(str_277)-1, +str_start_279= str_start_278+sizeof(str_278)-1, +str_start_280= str_start_279+sizeof(str_279)-1, +str_start_281= str_start_280+sizeof(str_280)-1, +str_start_282= str_start_281+sizeof(str_281)-1, +str_start_283= str_start_282+sizeof(str_282)-1, +str_start_284= str_start_283+sizeof(str_283)-1, +str_start_285= str_start_284+sizeof(str_284)-1, +str_start_286= str_start_285+sizeof(str_285)-1, +str_start_287= str_start_286+sizeof(str_286)-1, +str_start_288= str_start_287+sizeof(str_287)-1, +str_start_289= str_start_288+sizeof(str_288)-1, +str_start_290= str_start_289+sizeof(str_289)-1, +str_start_291= str_start_290+sizeof(str_290)-1, +str_start_292= str_start_291+sizeof(str_291)-1, +str_start_293= str_start_292+sizeof(str_292)-1, +str_start_294= str_start_293+sizeof(str_293)-1, +str_start_295= str_start_294+sizeof(str_294)-1, +str_start_296= str_start_295+sizeof(str_295)-1, +str_start_297= str_start_296+sizeof(str_296)-1, +str_start_298= str_start_297+sizeof(str_297)-1, +str_start_299= str_start_298+sizeof(str_298)-1, +str_start_300= str_start_299+sizeof(str_299)-1, +str_start_301= str_start_300+sizeof(str_300)-1, +str_start_302= str_start_301+sizeof(str_301)-1, +str_start_303= str_start_302+sizeof(str_302)-1, +str_start_304= str_start_303+sizeof(str_303)-1, +str_start_305= str_start_304+sizeof(str_304)-1, +str_start_306= str_start_305+sizeof(str_305)-1, +str_start_307= str_start_306+sizeof(str_306)-1, +str_start_308= str_start_307+sizeof(str_307)-1, +str_start_309= str_start_308+sizeof(str_308)-1, +str_start_310= str_start_309+sizeof(str_309)-1, +str_start_311= str_start_310+sizeof(str_310)-1, +str_start_312= str_start_311+sizeof(str_311)-1, +str_start_313= str_start_312+sizeof(str_312)-1, +str_start_314= str_start_313+sizeof(str_313)-1, +str_start_315= str_start_314+sizeof(str_314)-1, +str_start_316= str_start_315+sizeof(str_315)-1, +str_start_317= str_start_316+sizeof(str_316)-1, +str_start_318= str_start_317+sizeof(str_317)-1, +str_start_319= str_start_318+sizeof(str_318)-1, +str_start_320= str_start_319+sizeof(str_319)-1, +str_start_321= str_start_320+sizeof(str_320)-1, +str_start_322= str_start_321+sizeof(str_321)-1, +str_start_323= str_start_322+sizeof(str_322)-1, +str_start_324= str_start_323+sizeof(str_323)-1, +str_start_325= str_start_324+sizeof(str_324)-1, +str_start_326= str_start_325+sizeof(str_325)-1, +str_start_327= str_start_326+sizeof(str_326)-1, +str_start_328= str_start_327+sizeof(str_327)-1, +str_start_329= str_start_328+sizeof(str_328)-1, +str_start_330= str_start_329+sizeof(str_329)-1, +str_start_331= str_start_330+sizeof(str_330)-1, +str_start_332= str_start_331+sizeof(str_331)-1, +str_start_333= str_start_332+sizeof(str_332)-1, +str_start_334= str_start_333+sizeof(str_333)-1, +str_start_335= str_start_334+sizeof(str_334)-1, +str_start_336= str_start_335+sizeof(str_335)-1, +str_start_337= str_start_336+sizeof(str_336)-1, +str_start_338= str_start_337+sizeof(str_337)-1, +str_start_339= str_start_338+sizeof(str_338)-1, +str_start_340= str_start_339+sizeof(str_339)-1, +str_start_341= str_start_340+sizeof(str_340)-1, +str_start_342= str_start_341+sizeof(str_341)-1, +str_start_343= str_start_342+sizeof(str_342)-1, +str_start_344= str_start_343+sizeof(str_343)-1, +str_start_345= str_start_344+sizeof(str_344)-1, +str_start_346= str_start_345+sizeof(str_345)-1, +str_start_347= str_start_346+sizeof(str_346)-1, +str_start_348= str_start_347+sizeof(str_347)-1, +str_start_349= str_start_348+sizeof(str_348)-1, +str_start_350= str_start_349+sizeof(str_349)-1, +str_start_351= str_start_350+sizeof(str_350)-1, +str_start_352= str_start_351+sizeof(str_351)-1, +str_start_353= str_start_352+sizeof(str_352)-1, +str_start_354= str_start_353+sizeof(str_353)-1, +str_start_355= str_start_354+sizeof(str_354)-1, +str_start_356= str_start_355+sizeof(str_355)-1, +str_start_357= str_start_356+sizeof(str_356)-1, +str_start_358= str_start_357+sizeof(str_357)-1, +str_start_359= str_start_358+sizeof(str_358)-1, +str_start_360= str_start_359+sizeof(str_359)-1, +str_start_361= str_start_360+sizeof(str_360)-1, +str_start_362= str_start_361+sizeof(str_361)-1, +str_start_363= str_start_362+sizeof(str_362)-1, +str_start_364= str_start_363+sizeof(str_363)-1, +str_start_365= str_start_364+sizeof(str_364)-1, +str_start_366= str_start_365+sizeof(str_365)-1, +str_start_367= str_start_366+sizeof(str_366)-1, +str_start_368= str_start_367+sizeof(str_367)-1, +str_start_369= str_start_368+sizeof(str_368)-1, +str_start_370= str_start_369+sizeof(str_369)-1, +str_start_371= str_start_370+sizeof(str_370)-1, +str_start_372= str_start_371+sizeof(str_371)-1, +str_start_373= str_start_372+sizeof(str_372)-1, +str_start_374= str_start_373+sizeof(str_373)-1, +str_start_375= str_start_374+sizeof(str_374)-1, +str_start_376= str_start_375+sizeof(str_375)-1, +str_start_377= str_start_376+sizeof(str_376)-1, +str_start_378= str_start_377+sizeof(str_377)-1, +str_start_379= str_start_378+sizeof(str_378)-1, +str_start_380= str_start_379+sizeof(str_379)-1, +str_start_381= str_start_380+sizeof(str_380)-1, +str_start_382= str_start_381+sizeof(str_381)-1, +str_start_383= str_start_382+sizeof(str_382)-1, +str_start_384= str_start_383+sizeof(str_383)-1, +str_start_385= str_start_384+sizeof(str_384)-1, +str_start_386= str_start_385+sizeof(str_385)-1, +str_start_387= str_start_386+sizeof(str_386)-1, +str_start_388= str_start_387+sizeof(str_387)-1, +str_start_389= str_start_388+sizeof(str_388)-1, +str_start_390= str_start_389+sizeof(str_389)-1, +str_start_391= str_start_390+sizeof(str_390)-1, +str_start_392= str_start_391+sizeof(str_391)-1, +str_start_393= str_start_392+sizeof(str_392)-1, +str_start_394= str_start_393+sizeof(str_393)-1, +str_start_395= str_start_394+sizeof(str_394)-1, +str_start_396= str_start_395+sizeof(str_395)-1, +str_start_397= str_start_396+sizeof(str_396)-1, +str_start_398= str_start_397+sizeof(str_397)-1, +str_start_399= str_start_398+sizeof(str_398)-1, +str_start_400= str_start_399+sizeof(str_399)-1, +str_start_401= str_start_400+sizeof(str_400)-1, +str_start_402= str_start_401+sizeof(str_401)-1, +str_start_403= str_start_402+sizeof(str_402)-1, +str_start_404= str_start_403+sizeof(str_403)-1, +str_start_405= str_start_404+sizeof(str_404)-1, +str_start_406= str_start_405+sizeof(str_405)-1, +str_start_407= str_start_406+sizeof(str_406)-1, +str_start_408= str_start_407+sizeof(str_407)-1, +str_start_409= str_start_408+sizeof(str_408)-1, +str_start_410= str_start_409+sizeof(str_409)-1, +str_start_411= str_start_410+sizeof(str_410)-1, +str_start_412= str_start_411+sizeof(str_411)-1, +str_start_413= str_start_412+sizeof(str_412)-1, +str_start_414= str_start_413+sizeof(str_413)-1, +str_start_415= str_start_414+sizeof(str_414)-1, +str_start_416= str_start_415+sizeof(str_415)-1, +str_start_417= str_start_416+sizeof(str_416)-1, +str_start_418= str_start_417+sizeof(str_417)-1, +str_start_419= str_start_418+sizeof(str_418)-1, +str_start_420= str_start_419+sizeof(str_419)-1, +str_start_421= str_start_420+sizeof(str_420)-1, +str_start_422= str_start_421+sizeof(str_421)-1, +str_start_423= str_start_422+sizeof(str_422)-1, +str_start_424= str_start_423+sizeof(str_423)-1, +str_start_425= str_start_424+sizeof(str_424)-1, +str_start_426= str_start_425+sizeof(str_425)-1, +str_start_427= str_start_426+sizeof(str_426)-1, +str_start_428= str_start_427+sizeof(str_427)-1, +str_start_429= str_start_428+sizeof(str_428)-1, +str_start_430= str_start_429+sizeof(str_429)-1, +str_start_431= str_start_430+sizeof(str_430)-1, +str_start_432= str_start_431+sizeof(str_431)-1, +str_start_433= str_start_432+sizeof(str_432)-1, +str_start_434= str_start_433+sizeof(str_433)-1, +str_start_435= str_start_434+sizeof(str_434)-1, +str_start_436= str_start_435+sizeof(str_435)-1, +str_start_437= str_start_436+sizeof(str_436)-1, +str_start_438= str_start_437+sizeof(str_437)-1, +str_start_439= str_start_438+sizeof(str_438)-1, +str_start_440= str_start_439+sizeof(str_439)-1, +str_start_441= str_start_440+sizeof(str_440)-1, +str_start_442= str_start_441+sizeof(str_441)-1, +str_start_443= str_start_442+sizeof(str_442)-1, +str_start_444= str_start_443+sizeof(str_443)-1, +str_start_445= str_start_444+sizeof(str_444)-1, +str_start_446= str_start_445+sizeof(str_445)-1, +str_start_447= str_start_446+sizeof(str_446)-1, +str_start_448= str_start_447+sizeof(str_447)-1, +str_start_449= str_start_448+sizeof(str_448)-1, +str_start_450= str_start_449+sizeof(str_449)-1, +str_start_451= str_start_450+sizeof(str_450)-1, +str_start_452= str_start_451+sizeof(str_451)-1, +str_start_453= str_start_452+sizeof(str_452)-1, +str_start_454= str_start_453+sizeof(str_453)-1, +str_start_455= str_start_454+sizeof(str_454)-1, +str_start_456= str_start_455+sizeof(str_455)-1, +str_start_457= str_start_456+sizeof(str_456)-1, +str_start_458= str_start_457+sizeof(str_457)-1, +str_start_459= str_start_458+sizeof(str_458)-1, +str_start_460= str_start_459+sizeof(str_459)-1, +str_start_461= str_start_460+sizeof(str_460)-1, +str_start_462= str_start_461+sizeof(str_461)-1, +str_start_463= str_start_462+sizeof(str_462)-1, +str_start_464= str_start_463+sizeof(str_463)-1, +str_start_465= str_start_464+sizeof(str_464)-1, +str_start_466= str_start_465+sizeof(str_465)-1, +str_start_467= str_start_466+sizeof(str_466)-1, +str_start_468= str_start_467+sizeof(str_467)-1, +str_start_469= str_start_468+sizeof(str_468)-1, +str_start_470= str_start_469+sizeof(str_469)-1, +str_start_471= str_start_470+sizeof(str_470)-1, +str_start_472= str_start_471+sizeof(str_471)-1, +str_start_473= str_start_472+sizeof(str_472)-1, +str_start_474= str_start_473+sizeof(str_473)-1, +str_start_475= str_start_474+sizeof(str_474)-1, +str_start_476= str_start_475+sizeof(str_475)-1, +str_start_477= str_start_476+sizeof(str_476)-1, +str_start_478= str_start_477+sizeof(str_477)-1, +str_start_479= str_start_478+sizeof(str_478)-1, +str_start_480= str_start_479+sizeof(str_479)-1, +str_start_481= str_start_480+sizeof(str_480)-1, +str_start_482= str_start_481+sizeof(str_481)-1, +str_start_483= str_start_482+sizeof(str_482)-1, +str_start_484= str_start_483+sizeof(str_483)-1, +str_start_485= str_start_484+sizeof(str_484)-1, +str_start_486= str_start_485+sizeof(str_485)-1, +str_start_487= str_start_486+sizeof(str_486)-1, +str_start_488= str_start_487+sizeof(str_487)-1, +str_start_489= str_start_488+sizeof(str_488)-1, +str_start_490= str_start_489+sizeof(str_489)-1, +str_start_491= str_start_490+sizeof(str_490)-1, +str_start_492= str_start_491+sizeof(str_491)-1, +str_start_493= str_start_492+sizeof(str_492)-1, +str_start_494= str_start_493+sizeof(str_493)-1, +str_start_495= str_start_494+sizeof(str_494)-1, +str_start_496= str_start_495+sizeof(str_495)-1, +str_start_497= str_start_496+sizeof(str_496)-1, +str_start_498= str_start_497+sizeof(str_497)-1, +str_start_499= str_start_498+sizeof(str_498)-1, +str_start_500= str_start_499+sizeof(str_499)-1, +str_start_501= str_start_500+sizeof(str_500)-1, +str_start_502= str_start_501+sizeof(str_501)-1, +str_start_503= str_start_502+sizeof(str_502)-1, +str_start_504= str_start_503+sizeof(str_503)-1, +str_start_505= str_start_504+sizeof(str_504)-1, +str_start_506= str_start_505+sizeof(str_505)-1, +str_start_507= str_start_506+sizeof(str_506)-1, +str_start_508= str_start_507+sizeof(str_507)-1, +str_start_509= str_start_508+sizeof(str_508)-1, +str_start_510= str_start_509+sizeof(str_509)-1, +str_start_511= str_start_510+sizeof(str_510)-1, +str_start_512= str_start_511+sizeof(str_511)-1, +str_start_513= str_start_512+sizeof(str_512)-1, +str_start_514= str_start_513+sizeof(str_513)-1, +str_start_515= str_start_514+sizeof(str_514)-1, +str_start_516= str_start_515+sizeof(str_515)-1, +str_start_517= str_start_516+sizeof(str_516)-1, +str_start_518= str_start_517+sizeof(str_517)-1, +str_start_519= str_start_518+sizeof(str_518)-1, +str_start_520= str_start_519+sizeof(str_519)-1, +str_start_521= str_start_520+sizeof(str_520)-1, +str_start_522= str_start_521+sizeof(str_521)-1, +str_start_523= str_start_522+sizeof(str_522)-1, +str_start_524= str_start_523+sizeof(str_523)-1, +str_start_525= str_start_524+sizeof(str_524)-1, +str_start_526= str_start_525+sizeof(str_525)-1, +str_start_527= str_start_526+sizeof(str_526)-1, +str_start_528= str_start_527+sizeof(str_527)-1, +str_start_529= str_start_528+sizeof(str_528)-1, +str_start_530= str_start_529+sizeof(str_529)-1, +str_start_531= str_start_530+sizeof(str_530)-1, +str_start_532= str_start_531+sizeof(str_531)-1, +str_start_533= str_start_532+sizeof(str_532)-1, +str_start_534= str_start_533+sizeof(str_533)-1, +str_start_535= str_start_534+sizeof(str_534)-1, +str_start_536= str_start_535+sizeof(str_535)-1, +str_start_537= str_start_536+sizeof(str_536)-1, +str_start_538= str_start_537+sizeof(str_537)-1, +str_start_539= str_start_538+sizeof(str_538)-1, +str_start_540= str_start_539+sizeof(str_539)-1, +str_start_541= str_start_540+sizeof(str_540)-1, +str_start_542= str_start_541+sizeof(str_541)-1, +str_start_543= str_start_542+sizeof(str_542)-1, +str_start_544= str_start_543+sizeof(str_543)-1, +str_start_545= str_start_544+sizeof(str_544)-1, +str_start_546= str_start_545+sizeof(str_545)-1, +str_start_547= str_start_546+sizeof(str_546)-1, +str_start_548= str_start_547+sizeof(str_547)-1, +str_start_549= str_start_548+sizeof(str_548)-1, +str_start_550= str_start_549+sizeof(str_549)-1, +str_start_551= str_start_550+sizeof(str_550)-1, +str_start_552= str_start_551+sizeof(str_551)-1, +str_start_553= str_start_552+sizeof(str_552)-1, +str_start_554= str_start_553+sizeof(str_553)-1, +str_start_555= str_start_554+sizeof(str_554)-1, +str_start_556= str_start_555+sizeof(str_555)-1, +str_start_557= str_start_556+sizeof(str_556)-1, +str_start_558= str_start_557+sizeof(str_557)-1, +str_start_559= str_start_558+sizeof(str_558)-1, +str_start_560= str_start_559+sizeof(str_559)-1, +str_start_561= str_start_560+sizeof(str_560)-1, +str_start_562= str_start_561+sizeof(str_561)-1, +str_start_563= str_start_562+sizeof(str_562)-1, +str_start_564= str_start_563+sizeof(str_563)-1, +str_start_565= str_start_564+sizeof(str_564)-1, +str_start_566= str_start_565+sizeof(str_565)-1, +str_start_567= str_start_566+sizeof(str_566)-1, +str_start_568= str_start_567+sizeof(str_567)-1, +str_start_569= str_start_568+sizeof(str_568)-1, +str_start_570= str_start_569+sizeof(str_569)-1, +str_start_571= str_start_570+sizeof(str_570)-1, +str_start_572= str_start_571+sizeof(str_571)-1, +str_start_573= str_start_572+sizeof(str_572)-1, +str_start_574= str_start_573+sizeof(str_573)-1, +str_start_575= str_start_574+sizeof(str_574)-1, +str_start_576= str_start_575+sizeof(str_575)-1, +str_start_577= str_start_576+sizeof(str_576)-1, +str_start_578= str_start_577+sizeof(str_577)-1, +str_start_579= str_start_578+sizeof(str_578)-1, +str_start_580= str_start_579+sizeof(str_579)-1, +str_start_581= str_start_580+sizeof(str_580)-1, +str_start_582= str_start_581+sizeof(str_581)-1, +str_start_583= str_start_582+sizeof(str_582)-1, +str_start_584= str_start_583+sizeof(str_583)-1, +str_start_585= str_start_584+sizeof(str_584)-1, +str_start_586= str_start_585+sizeof(str_585)-1, +str_start_587= str_start_586+sizeof(str_586)-1, +str_start_588= str_start_587+sizeof(str_587)-1, +str_start_589= str_start_588+sizeof(str_588)-1, +str_start_590= str_start_589+sizeof(str_589)-1, +str_start_591= str_start_590+sizeof(str_590)-1, +str_start_592= str_start_591+sizeof(str_591)-1, +str_start_593= str_start_592+sizeof(str_592)-1, +str_start_594= str_start_593+sizeof(str_593)-1, +str_start_595= str_start_594+sizeof(str_594)-1, +str_start_596= str_start_595+sizeof(str_595)-1, +str_start_597= str_start_596+sizeof(str_596)-1, +str_start_598= str_start_597+sizeof(str_597)-1, +str_start_599= str_start_598+sizeof(str_598)-1, +str_start_600= str_start_599+sizeof(str_599)-1, +str_start_601= str_start_600+sizeof(str_600)-1, +str_start_602= str_start_601+sizeof(str_601)-1, +str_start_603= str_start_602+sizeof(str_602)-1, +str_start_604= str_start_603+sizeof(str_603)-1, +str_start_605= str_start_604+sizeof(str_604)-1, +str_start_606= str_start_605+sizeof(str_605)-1, +str_start_607= str_start_606+sizeof(str_606)-1, +str_start_608= str_start_607+sizeof(str_607)-1, +str_start_609= str_start_608+sizeof(str_608)-1, +str_start_610= str_start_609+sizeof(str_609)-1, +str_start_611= str_start_610+sizeof(str_610)-1, +str_start_612= str_start_611+sizeof(str_611)-1, +str_start_613= str_start_612+sizeof(str_612)-1, +str_start_614= str_start_613+sizeof(str_613)-1, +str_start_615= str_start_614+sizeof(str_614)-1, +str_start_616= str_start_615+sizeof(str_615)-1, +str_start_617= str_start_616+sizeof(str_616)-1, +str_start_618= str_start_617+sizeof(str_617)-1, +str_start_619= str_start_618+sizeof(str_618)-1, +str_start_620= str_start_619+sizeof(str_619)-1, +str_start_621= str_start_620+sizeof(str_620)-1, +str_start_622= str_start_621+sizeof(str_621)-1, +str_start_623= str_start_622+sizeof(str_622)-1, +str_start_624= str_start_623+sizeof(str_623)-1, +str_start_625= str_start_624+sizeof(str_624)-1, +str_start_626= str_start_625+sizeof(str_625)-1, +str_start_627= str_start_626+sizeof(str_626)-1, +str_start_628= str_start_627+sizeof(str_627)-1, +str_start_629= str_start_628+sizeof(str_628)-1, +str_start_630= str_start_629+sizeof(str_629)-1, +str_start_631= str_start_630+sizeof(str_630)-1, +str_start_632= str_start_631+sizeof(str_631)-1, +str_start_633= str_start_632+sizeof(str_632)-1, +str_start_634= str_start_633+sizeof(str_633)-1, +str_start_635= str_start_634+sizeof(str_634)-1, +str_start_636= str_start_635+sizeof(str_635)-1, +str_start_637= str_start_636+sizeof(str_636)-1, +str_start_638= str_start_637+sizeof(str_637)-1, +str_start_639= str_start_638+sizeof(str_638)-1, +str_start_640= str_start_639+sizeof(str_639)-1, +str_start_641= str_start_640+sizeof(str_640)-1, +str_start_642= str_start_641+sizeof(str_641)-1, +str_start_643= str_start_642+sizeof(str_642)-1, +str_start_644= str_start_643+sizeof(str_643)-1, +str_start_645= str_start_644+sizeof(str_644)-1, +str_start_646= str_start_645+sizeof(str_645)-1, +str_start_647= str_start_646+sizeof(str_646)-1, +str_start_648= str_start_647+sizeof(str_647)-1, +str_start_649= str_start_648+sizeof(str_648)-1, +str_start_650= str_start_649+sizeof(str_649)-1, +str_start_651= str_start_650+sizeof(str_650)-1, +str_start_652= str_start_651+sizeof(str_651)-1, +str_start_653= str_start_652+sizeof(str_652)-1, +str_start_654= str_start_653+sizeof(str_653)-1, +str_start_655= str_start_654+sizeof(str_654)-1, +str_start_656= str_start_655+sizeof(str_655)-1, +str_start_657= str_start_656+sizeof(str_656)-1, +str_start_658= str_start_657+sizeof(str_657)-1, +str_start_659= str_start_658+sizeof(str_658)-1, +str_start_660= str_start_659+sizeof(str_659)-1, +str_start_661= str_start_660+sizeof(str_660)-1, +str_start_662= str_start_661+sizeof(str_661)-1, +str_start_663= str_start_662+sizeof(str_662)-1, +str_start_664= str_start_663+sizeof(str_663)-1, +str_start_665= str_start_664+sizeof(str_664)-1, +str_start_666= str_start_665+sizeof(str_665)-1, +str_start_667= str_start_666+sizeof(str_666)-1, +str_start_668= str_start_667+sizeof(str_667)-1, +str_start_end}str_starts; + +/*:1795*/ +#line 1138 "tex.w" + +packed_ASCII_code str_pool[pool_size+1]= /*1793:*/ +#line 26275 "tex.w" + +str_0_255 +str_256 str_257 str_258 str_259 str_260 str_261 str_262 str_263 +str_264 str_265 str_266 str_267 str_268 str_269 str_270 str_271 +str_272 str_273 str_274 str_275 str_276 str_277 str_278 str_279 +str_280 str_281 str_282 str_283 str_284 str_285 str_286 str_287 +str_288 str_289 str_290 str_291 str_292 str_293 str_294 str_295 +str_296 str_297 str_298 str_299 str_300 str_301 str_302 str_303 +str_304 str_305 str_306 str_307 str_308 str_309 str_310 str_311 +str_312 str_313 str_314 str_315 str_316 str_317 str_318 str_319 +str_320 str_321 str_322 str_323 str_324 str_325 str_326 str_327 +str_328 str_329 str_330 str_331 str_332 str_333 str_334 str_335 +str_336 str_337 str_338 str_339 str_340 str_341 str_342 str_343 +str_344 str_345 str_346 str_347 str_348 str_349 str_350 str_351 +str_352 str_353 str_354 str_355 str_356 str_357 str_358 str_359 +str_360 str_361 str_362 str_363 str_364 str_365 str_366 str_367 +str_368 str_369 str_370 str_371 str_372 str_373 str_374 str_375 +str_376 str_377 str_378 str_379 str_380 str_381 str_382 str_383 +str_384 str_385 str_386 str_387 str_388 str_389 str_390 str_391 +str_392 str_393 str_394 str_395 str_396 str_397 str_398 str_399 +str_400 str_401 str_402 str_403 str_404 str_405 str_406 str_407 +str_408 str_409 str_410 str_411 str_412 str_413 str_414 str_415 +str_416 str_417 str_418 str_419 str_420 str_421 str_422 str_423 +str_424 str_425 str_426 str_427 str_428 str_429 str_430 str_431 +str_432 str_433 str_434 str_435 str_436 str_437 str_438 str_439 +str_440 str_441 str_442 str_443 str_444 str_445 str_446 str_447 +str_448 str_449 str_450 str_451 str_452 str_453 str_454 str_455 +str_456 str_457 str_458 str_459 str_460 str_461 str_462 str_463 +str_464 str_465 str_466 str_467 str_468 str_469 str_470 str_471 +str_472 str_473 str_474 str_475 str_476 str_477 str_478 str_479 +str_480 str_481 str_482 str_483 str_484 str_485 str_486 str_487 +str_488 str_489 str_490 str_491 str_492 str_493 str_494 str_495 +str_496 str_497 str_498 str_499 str_500 str_501 str_502 str_503 +str_504 str_505 str_506 str_507 str_508 str_509 str_510 str_511 +str_512 str_513 str_514 str_515 str_516 str_517 str_518 str_519 +str_520 str_521 str_522 str_523 str_524 str_525 str_526 str_527 +str_528 str_529 str_530 str_531 str_532 str_533 str_534 str_535 +str_536 str_537 str_538 str_539 str_540 str_541 str_542 str_543 +str_544 str_545 str_546 str_547 str_548 str_549 str_550 str_551 +str_552 str_553 str_554 str_555 str_556 str_557 str_558 str_559 +str_560 str_561 str_562 str_563 str_564 str_565 str_566 str_567 +str_568 str_569 str_570 str_571 str_572 str_573 str_574 str_575 +str_576 str_577 str_578 str_579 str_580 str_581 str_582 str_583 +str_584 str_585 str_586 str_587 str_588 str_589 str_590 str_591 +str_592 str_593 str_594 str_595 str_596 str_597 str_598 str_599 +str_600 str_601 str_602 str_603 str_604 str_605 str_606 str_607 +str_608 str_609 str_610 str_611 str_612 str_613 str_614 str_615 +str_616 str_617 str_618 str_619 str_620 str_621 str_622 str_623 +str_624 str_625 str_626 str_627 str_628 str_629 str_630 str_631 +str_632 str_633 str_634 str_635 str_636 str_637 str_638 str_639 +str_640 str_641 str_642 str_643 str_644 str_645 str_646 str_647 +str_648 str_649 str_650 str_651 str_652 str_653 str_654 str_655 +str_656 str_657 str_658 str_659 str_660 str_661 str_662 str_663 +str_664 str_665 str_666 str_667 + +/*:1793*/ +#line 1139 "tex.w" +; +pool_pointer str_start[max_strings+1]= {/*1794:*/ +#line 26330 "tex.w" + +str_start_0_255 +str_start_256,str_start_257,str_start_258,str_start_259, +str_start_260,str_start_261,str_start_262,str_start_263, +str_start_264,str_start_265,str_start_266,str_start_267, +str_start_268,str_start_269,str_start_270,str_start_271, +str_start_272,str_start_273,str_start_274,str_start_275, +str_start_276,str_start_277,str_start_278,str_start_279, +str_start_280,str_start_281,str_start_282,str_start_283, +str_start_284,str_start_285,str_start_286,str_start_287, +str_start_288,str_start_289,str_start_290,str_start_291, +str_start_292,str_start_293,str_start_294,str_start_295, +str_start_296,str_start_297,str_start_298,str_start_299, +str_start_300,str_start_301,str_start_302,str_start_303, +str_start_304,str_start_305,str_start_306,str_start_307, +str_start_308,str_start_309,str_start_310,str_start_311, +str_start_312,str_start_313,str_start_314,str_start_315, +str_start_316,str_start_317,str_start_318,str_start_319, +str_start_320,str_start_321,str_start_322,str_start_323, +str_start_324,str_start_325,str_start_326,str_start_327, +str_start_328,str_start_329,str_start_330,str_start_331, +str_start_332,str_start_333,str_start_334,str_start_335, +str_start_336,str_start_337,str_start_338,str_start_339, +str_start_340,str_start_341,str_start_342,str_start_343, +str_start_344,str_start_345,str_start_346,str_start_347, +str_start_348,str_start_349,str_start_350,str_start_351, +str_start_352,str_start_353,str_start_354,str_start_355, +str_start_356,str_start_357,str_start_358,str_start_359, +str_start_360,str_start_361,str_start_362,str_start_363, +str_start_364,str_start_365,str_start_366,str_start_367, +str_start_368,str_start_369,str_start_370,str_start_371, +str_start_372,str_start_373,str_start_374,str_start_375, +str_start_376,str_start_377,str_start_378,str_start_379, +str_start_380,str_start_381,str_start_382,str_start_383, +str_start_384,str_start_385,str_start_386,str_start_387, +str_start_388,str_start_389,str_start_390,str_start_391, +str_start_392,str_start_393,str_start_394,str_start_395, +str_start_396,str_start_397,str_start_398,str_start_399, +str_start_400,str_start_401,str_start_402,str_start_403, +str_start_404,str_start_405,str_start_406,str_start_407, +str_start_408,str_start_409,str_start_410,str_start_411, +str_start_412,str_start_413,str_start_414,str_start_415, +str_start_416,str_start_417,str_start_418,str_start_419, +str_start_420,str_start_421,str_start_422,str_start_423, +str_start_424,str_start_425,str_start_426,str_start_427, +str_start_428,str_start_429,str_start_430,str_start_431, +str_start_432,str_start_433,str_start_434,str_start_435, +str_start_436,str_start_437,str_start_438,str_start_439, +str_start_440,str_start_441,str_start_442,str_start_443, +str_start_444,str_start_445,str_start_446,str_start_447, +str_start_448,str_start_449,str_start_450,str_start_451, +str_start_452,str_start_453,str_start_454,str_start_455, +str_start_456,str_start_457,str_start_458,str_start_459, +str_start_460,str_start_461,str_start_462,str_start_463, +str_start_464,str_start_465,str_start_466,str_start_467, +str_start_468,str_start_469,str_start_470,str_start_471, +str_start_472,str_start_473,str_start_474,str_start_475, +str_start_476,str_start_477,str_start_478,str_start_479, +str_start_480,str_start_481,str_start_482,str_start_483, +str_start_484,str_start_485,str_start_486,str_start_487, +str_start_488,str_start_489,str_start_490,str_start_491, +str_start_492,str_start_493,str_start_494,str_start_495, +str_start_496,str_start_497,str_start_498,str_start_499, +str_start_500,str_start_501,str_start_502,str_start_503, +str_start_504,str_start_505,str_start_506,str_start_507, +str_start_508,str_start_509,str_start_510,str_start_511, +str_start_512,str_start_513,str_start_514,str_start_515, +str_start_516,str_start_517,str_start_518,str_start_519, +str_start_520,str_start_521,str_start_522,str_start_523, +str_start_524,str_start_525,str_start_526,str_start_527, +str_start_528,str_start_529,str_start_530,str_start_531, +str_start_532,str_start_533,str_start_534,str_start_535, +str_start_536,str_start_537,str_start_538,str_start_539, +str_start_540,str_start_541,str_start_542,str_start_543, +str_start_544,str_start_545,str_start_546,str_start_547, +str_start_548,str_start_549,str_start_550,str_start_551, +str_start_552,str_start_553,str_start_554,str_start_555, +str_start_556,str_start_557,str_start_558,str_start_559, +str_start_560,str_start_561,str_start_562,str_start_563, +str_start_564,str_start_565,str_start_566,str_start_567, +str_start_568,str_start_569,str_start_570,str_start_571, +str_start_572,str_start_573,str_start_574,str_start_575, +str_start_576,str_start_577,str_start_578,str_start_579, +str_start_580,str_start_581,str_start_582,str_start_583, +str_start_584,str_start_585,str_start_586,str_start_587, +str_start_588,str_start_589,str_start_590,str_start_591, +str_start_592,str_start_593,str_start_594,str_start_595, +str_start_596,str_start_597,str_start_598,str_start_599, +str_start_600,str_start_601,str_start_602,str_start_603, +str_start_604,str_start_605,str_start_606,str_start_607, +str_start_608,str_start_609,str_start_610,str_start_611, +str_start_612,str_start_613,str_start_614,str_start_615, +str_start_616,str_start_617,str_start_618,str_start_619, +str_start_620,str_start_621,str_start_622,str_start_623, +str_start_624,str_start_625,str_start_626,str_start_627, +str_start_628,str_start_629,str_start_630,str_start_631, +str_start_632,str_start_633,str_start_634,str_start_635, +str_start_636,str_start_637,str_start_638,str_start_639, +str_start_640,str_start_641,str_start_642,str_start_643, +str_start_644,str_start_645,str_start_646,str_start_647, +str_start_648,str_start_649,str_start_650,str_start_651, +str_start_652,str_start_653,str_start_654,str_start_655, +str_start_656,str_start_657,str_start_658,str_start_659, +str_start_660,str_start_661,str_start_662,str_start_663, +str_start_664,str_start_665,str_start_666,str_start_667, +str_start_668 + +/*:1794*/ +#line 1140 "tex.w" +}; +pool_pointer pool_ptr= /*1796:*/ +#line 26855 "tex.w" +str_start_668 + +/*:1796*/ +#line 1141 "tex.w" +; +str_number str_ptr= /*1797:*/ +#line 26857 "tex.w" +668 + +/*:1797*/ +#line 1142 "tex.w" +; +pool_pointer init_pool_ptr; +str_number init_str_ptr; + +/*:39*//*50:*/ +#line 1316 "tex.w" + +#ifdef INIT +alpha_file pool_file; +#endif + +/*:50*//*54:*/ +#line 1424 "tex.w" + +alpha_file log_file; +uint8_t selector; +uint8_t dig[23]; +int tally; +uint8_t term_offset; + +uint8_t file_offset; + +ASCII_code trick_buf[error_line+1]; + +int trick_count; +int first_count; + +/*:54*//*73:*/ +#line 1770 "tex.w" + +uint8_t interaction; + +/*:73*//*76:*/ +#line 1811 "tex.w" + +bool deletions_allowed; +bool set_box_allowed; +uint8_t history; +int8_t error_count; + + +/*:76*//*79:*/ +#line 1870 "tex.w" + +char*help_line[6]; +uint8_t help_ptr; +bool use_err_help; + +/*:79*//*96:*/ +#line 2135 "tex.w" + +int interrupt; +bool OK_to_interrupt; + +/*:96*//*104:*/ +#line 2268 "tex.w" + +bool arith_error; +scaled rem; + +/*:104*//*115:*/ +#line 2557 "tex.w" + +pointer temp_ptr; + +/*:115*//*116:*/ +#line 2589 "tex.w" + +memory_word mem0[mem_max-mem_min+1],*const mem= mem0-mem_min; +pointer lo_mem_max; +pointer hi_mem_min; + +/*:116*//*117:*/ +#line 2602 "tex.w" + +int var_used,dyn_used; +#ifdef DEBUG +#define incr_dyn_used incr(dyn_used) +#define decr_dyn_used decr(dyn_used) +#else +#define incr_dyn_used +#define decr_dyn_used +#endif + +/*:117*//*118:*/ +#line 2625 "tex.w" + +pointer avail; +pointer mem_end; + +/*:118*//*124:*/ +#line 2725 "tex.w" + +pointer rover; + +/*:124*//*165:*/ +#line 3428 "tex.w" + +#ifdef DEBUG +bool is_free0[mem_max-mem_min+1],*const is_free= is_free0-mem_min; +bool was_free0[mem_max-mem_min+1],*const was_free= was_free0-mem_min; + +pointer was_mem_end,was_lo_max,was_hi_min; + +bool panicking; +#endif + +/*:165*//*173:*/ +#line 3582 "tex.w" + +int font_in_short_display; + +/*:173*//*181:*/ +#line 3710 "tex.w" + +int depth_threshold; +int breadth_max; + +/*:181*//*213:*/ +#line 4387 "tex.w" + +list_state_record nest[nest_size+1]; +uint8_t nest_ptr; +uint8_t max_nest_stack; +list_state_record cur_list; +int16_t shown_mode; + +/*:213*//*246:*/ +#line 5336 "tex.w" + +uint8_t old_setting; + +/*:246*//*253:*/ +#line 5502 "tex.w" + +memory_word eqtb0[eqtb_size-active_base+1],*const eqtb= eqtb0-active_base; +quarterword xeq_level0[eqtb_size-int_base+1],*const xeq_level= xeq_level0-int_base; + +/*:253*//*256:*/ +#line 5550 "tex.w" + +two_halves hash0[undefined_control_sequence-hash_base],*const hash= hash0-hash_base; + +pointer hash_used; +bool no_new_control_sequence; +int cs_count; + +/*:256*//*271:*/ +#line 5943 "tex.w" + +memory_word save_stack[save_size+1]; +uint16_t save_ptr; +uint16_t max_save_stack; +quarterword cur_level; +group_code cur_group; +uint16_t cur_boundary; + +/*:271*//*286:*/ +#line 6185 "tex.w" + +int mag_set; + +/*:286*//*297:*/ +#line 6443 "tex.w" + +eight_bits cur_cmd; +halfword cur_chr; +pointer cur_cs; +halfword cur_tok; + +/*:297*//*301:*/ +#line 6520 "tex.w" + +in_state_record input_stack[stack_size+1]; +uint8_t input_ptr; +uint8_t max_in_stack; +in_state_record cur_input; + + +/*:301*//*304:*/ +#line 6622 "tex.w" + +uint8_t in_open; +uint8_t open_parens; +alpha_file input_file0[max_in_open],*const input_file= input_file0-1; +int line; +int line_stack0[max_in_open],*const line_stack= line_stack0-1; + +/*:304*//*305:*/ +#line 6665 "tex.w" + +uint8_t scanner_status; +pointer warning_index; +pointer def_ref; + +/*:305*//*308:*/ +#line 6789 "tex.w" + +pointer param_stack[param_size+1]; + +uint8_t param_ptr; +int max_param_stack; + + +/*:308*//*309:*/ +#line 6806 "tex.w" + +int align_state; + +/*:309*//*310:*/ +#line 6817 "tex.w" + +uint8_t base_ptr; + +/*:310*//*333:*/ +#line 7194 "tex.w" + +pointer par_loc; +halfword par_token; + +/*:333*//*361:*/ +#line 7611 "tex.w" + +bool force_eof; + +/*:361*//*382:*/ +#line 7925 "tex.w" + +pointer cur_mark0[split_bot_mark_code-top_mark_code+1],*const cur_mark= cur_mark0-top_mark_code; + + +/*:382*//*387:*/ +#line 7974 "tex.w" + +uint8_t long_state; + +/*:387*//*388:*/ +#line 7985 "tex.w" + +pointer pstack[9]; + +/*:388*//*410:*/ +#line 8369 "tex.w" + +int cur_val; +uint8_t cur_val_level; + +/*:410*//*438:*/ +#line 8740 "tex.w" + +small_number radix; + +/*:438*//*447:*/ +#line 8875 "tex.w" + +glue_ord cur_order; + +/*:447*//*480:*/ +#line 9482 "tex.w" + +alpha_file read_file[16]; +uint8_t read_open[17]; + +/*:480*//*489:*/ +#line 9669 "tex.w" + +pointer cond_ptr; +uint8_t if_limit; +small_number cur_if; +int if_line; + +/*:489*//*493:*/ +#line 9695 "tex.w" + +int skip_line; + +/*:493*//*512:*/ +#line 10022 "tex.w" + +str_number cur_name; +str_number cur_area; +str_number cur_ext; + +/*:512*//*513:*/ +#line 10038 "tex.w" + +pool_pointer area_delimiter; +pool_pointer ext_delimiter; + +/*:513*//*520:*/ +#line 10138 "tex.w" + +ASCII_code TEX_format_default[1+format_default_length+1]= " TeXformats/plain.fmt"; + + + + +/*:520*//*526:*/ +#line 10269 "tex.w" + +bool name_in_progress; +str_number job_name; +bool log_opened; + +/*:526*//*532:*/ +#line 10342 "tex.w" + +byte_file dvi_file; +str_number output_file_name; +str_number log_name; + +/*:532*//*539:*/ +#line 10465 "tex.w" + +byte_file tfm_file; + +/*:539*//*549:*/ +#line 10752 "tex.w" + +memory_word font_info[font_mem_size+1]; + +font_index fmem_ptr; +internal_font_number font_ptr; +four_quarters font_check0[font_max-font_base+1],*const font_check= font_check0-font_base; +scaled font_size0[font_max-font_base+1],*const font_size= font_size0-font_base; +scaled font_dsize0[font_max-font_base+1],*const font_dsize= font_dsize0-font_base; +font_index font_params0[font_max-font_base+1],*const font_params= font_params0-font_base; + +str_number font_name0[font_max-font_base+1],*const font_name= font_name0-font_base; +str_number font_area0[font_max-font_base+1],*const font_area= font_area0-font_base; +eight_bits font_bc0[font_max-font_base+1],*const font_bc= font_bc0-font_base; + +eight_bits font_ec0[font_max-font_base+1],*const font_ec= font_ec0-font_base; + +pointer font_glue0[font_max-font_base+1],*const font_glue= font_glue0-font_base; + +bool font_used0[font_max-font_base+1],*const font_used= font_used0-font_base; + +int hyphen_char0[font_max-font_base+1],*const hyphen_char= hyphen_char0-font_base; + +int skew_char0[font_max-font_base+1],*const skew_char= skew_char0-font_base; + +font_index bchar_label0[font_max-font_base+1],*const bchar_label= bchar_label0-font_base; + + +uint16_t font_bchar0[font_max-font_base+1],*const font_bchar= font_bchar0-font_base; + +uint16_t font_false_bchar0[font_max-font_base+1],*const font_false_bchar= font_false_bchar0-font_base; + + +/*:549*//*550:*/ +#line 10793 "tex.w" + +int char_base0[font_max-font_base+1],*const char_base= char_base0-font_base; + +int width_base0[font_max-font_base+1],*const width_base= width_base0-font_base; + +int height_base0[font_max-font_base+1],*const height_base= height_base0-font_base; + +int depth_base0[font_max-font_base+1],*const depth_base= depth_base0-font_base; + +int italic_base0[font_max-font_base+1],*const italic_base= italic_base0-font_base; + +int lig_kern_base0[font_max-font_base+1],*const lig_kern_base= lig_kern_base0-font_base; + +int kern_base0[font_max-font_base+1],*const kern_base= kern_base0-font_base; + +int exten_base0[font_max-font_base+1],*const exten_base= exten_base0-font_base; + +int param_base0[font_max-font_base+1],*const param_base= param_base0-font_base; + + +/*:550*//*555:*/ +#line 10887 "tex.w" + +four_quarters null_character; + +/*:555*//*592:*/ +#line 11882 "tex.w" + +int total_pages; +scaled max_v; +scaled max_h; +int max_push; +int last_bop; +int dead_cycles; +bool doing_leaders; + +quarterword c,f; +scaled rule_ht,rule_dp,rule_wd; +pointer g; +int lq,lr; + +/*:592*//*595:*/ +#line 11930 "tex.w" + +eight_bits dvi_buf[dvi_buf_size+1]; +dvi_index half_buf; +dvi_index dvi_limit; +dvi_index dvi_ptr; +int dvi_offset; + +int dvi_gone; + +/*:595*//*605:*/ +#line 12095 "tex.w" + +pointer down_ptr,right_ptr; + +/*:605*//*616:*/ +#line 12317 "tex.w" + +scaled dvi_h,dvi_v; +scaled cur_h,cur_v; +internal_font_number dvi_f; +int cur_s; + +/*:616*//*646:*/ +#line 12921 "tex.w" + +scaled total_stretch0[filll-normal+1],*const total_stretch= total_stretch0-normal,total_shrink0[filll-normal+1],*const total_shrink= total_shrink0-normal; + +int last_badness; + +/*:646*//*647:*/ +#line 12931 "tex.w" + +pointer adjust_tail; + +/*:647*//*661:*/ +#line 13105 "tex.w" + +int pack_begin_line; + + +/*:661*//*684:*/ +#line 13522 "tex.w" + +two_halves empty_field; +four_quarters null_delimiter; + +/*:684*//*719:*/ +#line 14174 "tex.w" + +pointer cur_mlist; +small_number cur_style; +small_number cur_size; +scaled cur_mu; +bool mlist_penalties; + +/*:719*//*724:*/ +#line 14264 "tex.w" + +internal_font_number cur_f; +quarterword cur_c; +four_quarters cur_i; + + +/*:724*//*764:*/ +#line 15075 "tex.w" + +int magic_offset; + +/*:764*//*770:*/ +#line 15276 "tex.w" + +pointer cur_align; +pointer cur_span; +pointer cur_loop; +pointer align_ptr; +pointer cur_head,cur_tail; + +/*:770*//*814:*/ +#line 16049 "tex.w" + +pointer just_box; + +/*:814*//*821:*/ +#line 16192 "tex.w" + +pointer passive; +pointer printed_node; +halfword pass_number; + +/*:821*//*823:*/ +#line 16231 "tex.w" + +scaled active_width0[6],*const active_width= active_width0-1; + +scaled cur_active_width0[6],*const cur_active_width= cur_active_width0-1; +scaled background0[6],*const background= background0-1; +scaled break_width0[6],*const break_width= break_width0-1; + +/*:823*//*825:*/ +#line 16288 "tex.w" + +bool no_shrink_error_yet; + +/*:825*//*828:*/ +#line 16340 "tex.w" + +pointer cur_p; +bool second_pass; +bool final_pass; +int threshold; + +/*:828*//*833:*/ +#line 16441 "tex.w" + +int minimal_demerits0[tight_fit-very_loose_fit+1],*const minimal_demerits= minimal_demerits0-very_loose_fit; + +int minimum_demerits; + +pointer best_place0[tight_fit-very_loose_fit+1],*const best_place= best_place0-very_loose_fit; + +halfword best_pl_line0[tight_fit-very_loose_fit+1],*const best_pl_line= best_pl_line0-very_loose_fit; + + +/*:833*//*839:*/ +#line 16559 "tex.w" + +scaled disc_width; + +/*:839*//*847:*/ +#line 16699 "tex.w" + +halfword easy_line; +halfword last_special_line; + +scaled first_width; + +scaled second_width; +scaled first_indent; +scaled second_indent; + +/*:847*//*872:*/ +#line 17210 "tex.w" + +pointer best_bet; +int fewest_demerits; +halfword best_line; +int actual_looseness; + +int line_diff; + + +/*:872*//*892:*/ +#line 17544 "tex.w" + +uint16_t hc[66]; +small_number hn; +pointer ha,hb; +internal_font_number hf; +uint16_t hu[64]; +int hyf_char; +ASCII_code cur_lang,init_cur_lang; +int l_hyf,r_hyf,init_l_hyf,init_r_hyf; +halfword hyf_bchar; + +/*:892*//*900:*/ +#line 17677 "tex.w" + +uint8_t hyf[65]; +pointer init_list; +bool init_lig; +bool init_lft; + +/*:900*//*905:*/ +#line 17801 "tex.w" + +small_number hyphen_passed; + +/*:905*//*907:*/ +#line 17842 "tex.w" + +halfword cur_l,cur_r; +pointer cur_q; +pointer lig_stack; +bool ligature_present; +bool lft_hit,rt_hit; + +/*:907*//*921:*/ +#line 18145 "tex.w" + +two_halves trie[trie_size+1]; +small_number hyf_distance0[trie_op_size],*const hyf_distance= hyf_distance0-1; +small_number hyf_num0[trie_op_size],*const hyf_num= hyf_num0-1; +quarterword hyf_next0[trie_op_size],*const hyf_next= hyf_next0-1; +uint16_t op_start[256]; + +/*:921*//*926:*/ +#line 18207 "tex.w" + +str_number hyph_word[hyph_size+1]; +pointer hyph_list[hyph_size+1]; +hyph_pointer hyph_count; + +/*:926*//*943:*/ +#line 18416 "tex.w" + +#ifdef INIT +uint16_t trie_op_hash0[trie_op_size+trie_op_size+1],*const trie_op_hash= trie_op_hash0+trie_op_size; + +quarterword trie_used[256]; + +ASCII_code trie_op_lang0[trie_op_size],*const trie_op_lang= trie_op_lang0-1; + +quarterword trie_op_val0[trie_op_size],*const trie_op_val= trie_op_val0-1; + +uint16_t trie_op_ptr; +#endif + +/*:943*//*947:*/ +#line 18509 "tex.w" + +#ifdef INIT +packed_ASCII_code trie_c[trie_size+1]; + +quarterword trie_o[trie_size+1]; + +trie_pointer trie_l[trie_size+1]; + +trie_pointer trie_r[trie_size+1]; + +trie_pointer trie_ptr; +trie_pointer trie_hash[trie_size+1]; + +#endif + +/*:947*//*950:*/ +#line 18596 "tex.w" + +#ifdef INIT +bool trie_taken0[trie_size],*const trie_taken= trie_taken0-1; + +trie_pointer trie_min[256]; + +trie_pointer trie_max; +bool trie_not_ready; +#endif + +/*:950*//*971:*/ +#line 18955 "tex.w" + +scaled best_height_plus_depth; + + +/*:971*//*980:*/ +#line 19162 "tex.w" + +pointer page_tail; +uint8_t page_contents; +scaled page_max_depth; +pointer best_page_break; +int least_page_cost; +scaled best_size; + +/*:980*//*982:*/ +#line 19244 "tex.w" + +scaled page_so_far[8]; +pointer last_glue; +int last_penalty; +scaled last_kern; +int insert_penalties; + +/*:982*//*989:*/ +#line 19378 "tex.w" + +bool output_active; + +/*:989*//*1032:*/ +#line 20098 "tex.w" + +internal_font_number main_f; +four_quarters main_i; +four_quarters main_j; +font_index main_k; +pointer main_p; +int main_s; +halfword bchar; +halfword false_bchar; +bool cancel_boundary; +bool ins_disc; + +/*:1032*//*1074:*/ +#line 20871 "tex.w" + +pointer cur_box; + +/*:1074*//*1266:*/ +#line 23457 "tex.w" + +halfword after_token; + +/*:1266*//*1281:*/ +#line 23560 "tex.w" + +bool long_help_seen; + +/*:1281*//*1299:*/ +#line 23746 "tex.w" + +str_number format_ident; + +/*:1299*//*1305:*/ +#line 23827 "tex.w" + +word_file fmt_file; + +/*:1305*//*1331:*/ +#line 24280 "tex.w" + +int ready_already; + +/*:1331*//*1342:*/ +#line 24612 "tex.w" + +alpha_file write_file[16]; +bool write_open[18]; + +/*:1342*//*1345:*/ +#line 24643 "tex.w" + +pointer write_loc; + +/*:1345*/ +#line 266 "tex.w" + + +void initialize(void) +{/*19:*/ +#line 572 "tex.w" + +int i; + +/*:19*//*163:*/ +#line 3387 "tex.w" + +int k; + +/*:163*//*927:*/ +#line 18212 "tex.w" + +hyph_pointer z; + +/*:927*/ +#line 269 "tex.w" + +/*8:*/ +#line 315 "tex.w" + +/*21:*/ +#line 594 "tex.w" + +xchr[040]= ' '; +xchr[041]= '!'; +xchr[042]= '"'; +xchr[043]= '#'; +xchr[044]= '$'; +xchr[045]= '%'; +xchr[046]= '&'; +xchr[047]= '\''; +xchr[050]= '('; +xchr[051]= ')'; +xchr[052]= '*'; +xchr[053]= '+'; +xchr[054]= ','; +xchr[055]= '-'; +xchr[056]= '.'; +xchr[057]= '/'; +xchr[060]= '0'; +xchr[061]= '1'; +xchr[062]= '2'; +xchr[063]= '3'; +xchr[064]= '4'; +xchr[065]= '5'; +xchr[066]= '6'; +xchr[067]= '7'; +xchr[070]= '8'; +xchr[071]= '9'; +xchr[072]= ':'; +xchr[073]= ';'; +xchr[074]= '<'; +xchr[075]= '='; +xchr[076]= '>'; +xchr[077]= '?'; +xchr[0100]= '@'; +xchr[0101]= 'A'; +xchr[0102]= 'B'; +xchr[0103]= 'C'; +xchr[0104]= 'D'; +xchr[0105]= 'E'; +xchr[0106]= 'F'; +xchr[0107]= 'G'; +xchr[0110]= 'H'; +xchr[0111]= 'I'; +xchr[0112]= 'J'; +xchr[0113]= 'K'; +xchr[0114]= 'L'; +xchr[0115]= 'M'; +xchr[0116]= 'N'; +xchr[0117]= 'O'; +xchr[0120]= 'P'; +xchr[0121]= 'Q'; +xchr[0122]= 'R'; +xchr[0123]= 'S'; +xchr[0124]= 'T'; +xchr[0125]= 'U'; +xchr[0126]= 'V'; +xchr[0127]= 'W'; +xchr[0130]= 'X'; +xchr[0131]= 'Y'; +xchr[0132]= 'Z'; +xchr[0133]= '['; +xchr[0134]= '\\'; +xchr[0135]= ']'; +xchr[0136]= '^'; +xchr[0137]= '_'; +xchr[0140]= '`'; +xchr[0141]= 'a'; +xchr[0142]= 'b'; +xchr[0143]= 'c'; +xchr[0144]= 'd'; +xchr[0145]= 'e'; +xchr[0146]= 'f'; +xchr[0147]= 'g'; +xchr[0150]= 'h'; +xchr[0151]= 'i'; +xchr[0152]= 'j'; +xchr[0153]= 'k'; +xchr[0154]= 'l'; +xchr[0155]= 'm'; +xchr[0156]= 'n'; +xchr[0157]= 'o'; +xchr[0160]= 'p'; +xchr[0161]= 'q'; +xchr[0162]= 'r'; +xchr[0163]= 's'; +xchr[0164]= 't'; +xchr[0165]= 'u'; +xchr[0166]= 'v'; +xchr[0167]= 'w'; +xchr[0170]= 'x'; +xchr[0171]= 'y'; +xchr[0172]= 'z'; +xchr[0173]= '{'; +xchr[0174]= '|'; +xchr[0175]= '}'; +xchr[0176]= '~'; + +/*:21*//*23:*/ +#line 725 "tex.w" + +for(i= 0;i<=037;i++)xchr[i]= ' '; +for(i= 0177;i<=0377;i++)xchr[i]= ' '; + +/*:23*//*24:*/ +#line 735 "tex.w" + +for(i= first_text_char;i<=last_text_char;i++)xord[chr(i)]= invalid_code; +for(i= 0200;i<=0377;i++)xord[xchr[i]]= i; +for(i= 0;i<=0176;i++)xord[xchr[i]]= i; + +/*:24*//*74:*/ +#line 1773 "tex.w" +interaction= error_stop_mode; + +/*:74*//*77:*/ +#line 1821 "tex.w" + +deletions_allowed= true;set_box_allowed= true; +error_count= 0; + +/*:77*//*80:*/ +#line 1875 "tex.w" + +help_ptr= 0;use_err_help= false; + +/*:80*//*97:*/ +#line 2139 "tex.w" + +interrupt= 0;OK_to_interrupt= true; + +/*:97*//*166:*/ +#line 3438 "tex.w" + +#ifdef DEBUG +was_mem_end= mem_min; +was_lo_max= mem_min;was_hi_min= mem_max; +panicking= false; +#endif + +/*:166*//*215:*/ +#line 4407 "tex.w" + +nest_ptr= 0;max_nest_stack= 0; +mode= vmode;head= contrib_head;tail= contrib_head; +prev_depth= ignore_depth;mode_line= 0; +prev_graf= 0;shown_mode= 0; +/*991:*/ +#line 19388 "tex.w" + +page_contents= empty;page_tail= page_head;link(page_head)= null; +last_glue= max_halfword;last_penalty= 0;last_kern= 0; +page_depth= 0;page_max_depth= 0 + +/*:991*/ +#line 4412 "tex.w" +; + +/*:215*//*254:*/ +#line 5506 "tex.w" + +for(k= int_base;k<=eqtb_size;k++)xeq_level[k]= level_one; + +/*:254*//*257:*/ +#line 5557 "tex.w" + +no_new_control_sequence= true; +next(hash_base)= 0;text(hash_base)= 0; +for(k= hash_base+1;k<=undefined_control_sequence-1;k++)hash[k]= hash[hash_base]; + +/*:257*//*272:*/ +#line 5956 "tex.w" + +save_ptr= 0;cur_level= level_one;cur_group= bottom_level;cur_boundary= 0; +max_save_stack= 0; + +/*:272*//*287:*/ +#line 6188 "tex.w" + +mag_set= 0; + +/*:287*//*383:*/ +#line 7929 "tex.w" + +top_mark= null;first_mark= null;bot_mark= null; +split_first_mark= null;split_bot_mark= null; + +/*:383*//*439:*/ +#line 8747 "tex.w" + +cur_val= 0;cur_val_level= int_val;radix= 0;cur_order= normal; + +/*:439*//*481:*/ +#line 9486 "tex.w" + +for(k= 0;k<=16;k++)read_open[k]= closed; + +/*:481*//*490:*/ +#line 9675 "tex.w" + +cond_ptr= null;if_limit= normal;cur_if= 0;if_line= 0; + +/*:490*//*551:*/ +#line 10813 "tex.w" + +for(k= font_base;k<=font_max;k++)font_used[k]= false; + +/*:551*//*556:*/ +#line 10890 "tex.w" + +null_character.b0= min_quarterword;null_character.b1= min_quarterword; +null_character.b2= min_quarterword;null_character.b3= min_quarterword; + +/*:556*//*593:*/ +#line 11896 "tex.w" + +total_pages= 0;max_v= 0;max_h= 0;max_push= 0;last_bop= -1; +doing_leaders= false;dead_cycles= 0;cur_s= -1; + +/*:593*//*596:*/ +#line 11942 "tex.w" + +half_buf= dvi_buf_size/2;dvi_limit= dvi_buf_size;dvi_ptr= 0; +dvi_offset= 0;dvi_gone= 0; + +/*:596*//*606:*/ +#line 12098 "tex.w" + +down_ptr= null;right_ptr= null; + +/*:606*//*648:*/ +#line 12934 "tex.w" +adjust_tail= null;last_badness= 0; + +/*:648*//*662:*/ +#line 13109 "tex.w" + +pack_begin_line= 0; + +/*:662*//*685:*/ +#line 13526 "tex.w" + +empty_field.rh= empty;empty_field.lh= null; +null_delimiter.b0= 0;null_delimiter.b1= min_quarterword; +null_delimiter.b2= 0;null_delimiter.b3= min_quarterword; + +/*:685*//*771:*/ +#line 15285 "tex.w" + +align_ptr= null;cur_align= null;cur_span= null;cur_loop= null; +cur_head= null;cur_tail= null; + +/*:771*//*928:*/ +#line 18215 "tex.w" + +for(z= 0;z<=hyph_size;z++) +{hyph_word[z]= 0;hyph_list[z]= null; +} +hyph_count= 0; + +/*:928*//*990:*/ +#line 19381 "tex.w" + +output_active= false;insert_penalties= 0; + +/*:990*//*1033:*/ +#line 20114 "tex.w" + +ligature_present= false;cancel_boundary= false;lft_hit= false;rt_hit= false; +ins_disc= false; + +/*:1033*//*1267:*/ +#line 23460 "tex.w" + +after_token= 0; + +/*:1267*//*1282:*/ +#line 23563 "tex.w" +long_help_seen= false; + +/*:1282*//*1300:*/ +#line 23749 "tex.w" + +format_ident= 0; + +/*:1300*//*1343:*/ +#line 24616 "tex.w" + +for(k= 0;k<=17;k++)write_open[k]= false; + +/*:1343*/ +#line 316 "tex.w" + +#ifdef INIT +/*164:*/ +#line 3390 "tex.w" + +for(k= mem_bot+1;k<=lo_mem_stat_max;k++)mem[k].sc= 0; + + +k= mem_bot;while(k<=lo_mem_stat_max) + +{glue_ref_count(k)= null+1; +stretch_order(k)= normal;shrink_order(k)= normal; +k= k+glue_spec_size; +} +stretch(fil_glue)= unity;stretch_order(fil_glue)= fil; +stretch(fill_glue)= unity;stretch_order(fill_glue)= fill; +stretch(ss_glue)= unity;stretch_order(ss_glue)= fil; +shrink(ss_glue)= unity;shrink_order(ss_glue)= fil; +stretch(fil_neg_glue)= -unity;stretch_order(fil_neg_glue)= fil; +rover= lo_mem_stat_max+1; +link(rover)= empty_flag; +node_size(rover)= 1000; +llink(rover)= rover;rlink(rover)= rover; +lo_mem_max= rover+1000;link(lo_mem_max)= null;info(lo_mem_max)= null; +for(k= hi_mem_stat_min;k<=mem_top;k++) +mem[k]= mem[lo_mem_max]; +/*790:*/ +#line 15595 "tex.w" + +info(omit_template)= end_template_token; + +/*:790*//*797:*/ +#line 15701 "tex.w" + +link(end_span)= max_quarterword+1;info(end_span)= null; + +/*:797*//*820:*/ +#line 16162 "tex.w" + +type(last_active)= hyphenated;line_number(last_active)= max_halfword; +subtype(last_active)= 0; + +/*:820*//*981:*/ +#line 19215 "tex.w" + +subtype(page_ins_head)= qi(255); +type(page_ins_head)= split_up;link(page_ins_head)= page_ins_head; + +/*:981*//*988:*/ +#line 19372 "tex.w" + +type(page_head)= glue_node;subtype(page_head)= normal; + +/*:988*/ +#line 3412 "tex.w" +; +avail= null;mem_end= mem_top; +hi_mem_min= hi_mem_stat_min; +var_used= lo_mem_stat_max+1-mem_bot;dyn_used= hi_mem_stat_usage; + + +/*:164*//*222:*/ +#line 4596 "tex.w" + +eq_type(undefined_control_sequence)= undefined_cs; +equiv(undefined_control_sequence)= null; +eq_level(undefined_control_sequence)= level_zero; +for(k= active_base;k<=undefined_control_sequence-1;k++) +eqtb[k]= eqtb[undefined_control_sequence]; + +/*:222*//*228:*/ +#line 4751 "tex.w" + +equiv(glue_base)= zero_glue;eq_level(glue_base)= level_one; +eq_type(glue_base)= glue_ref; +for(k= glue_base+1;k<=local_base-1;k++)eqtb[k]= eqtb[glue_base]; +glue_ref_count(zero_glue)= glue_ref_count(zero_glue)+local_base-glue_base; + +/*:228*//*232:*/ +#line 4870 "tex.w" + +par_shape_ptr= null;eq_type(par_shape_loc)= shape_ref; +eq_level(par_shape_loc)= level_one; +for(k= output_routine_loc;k<=toks_base+255;k++) +eqtb[k]= eqtb[undefined_control_sequence]; +box(0)= null;eq_type(box_base)= box_ref;eq_level(box_base)= level_one; +for(k= box_base+1;k<=box_base+255;k++)eqtb[k]= eqtb[box_base]; +cur_font= null_font;eq_type(cur_font_loc)= data; +eq_level(cur_font_loc)= level_one; +for(k= math_font_base;k<=math_font_base+47;k++)eqtb[k]= eqtb[cur_font_loc]; +equiv(cat_code_base)= 0;eq_type(cat_code_base)= data; +eq_level(cat_code_base)= level_one; +for(k= cat_code_base+1;k<=int_base-1;k++)eqtb[k]= eqtb[cat_code_base]; +for(k= 0;k<=255;k++) +{cat_code(k)= other_char;math_code(k)= hi(k);sf_code(k)= 1000; +} +cat_code(carriage_return)= car_ret;cat_code(' ')= spacer; +cat_code('\\')= escape;cat_code('%')= comment; +cat_code(invalid_code)= invalid_char;cat_code(null_code)= ignore; +for(k= '0';k<='9';k++)math_code(k)= hi(k+var_code); +for(k= 'A';k<='Z';k++) +{cat_code(k)= letter;cat_code(k+'a'-'A')= letter; +math_code(k)= hi(k+var_code+0x100); +math_code(k+'a'-'A')= hi(k+'a'-'A'+var_code+0x100); +lc_code(k)= k+'a'-'A';lc_code(k+'a'-'A')= k+'a'-'A'; +uc_code(k)= k;uc_code(k+'a'-'A')= k; +sf_code(k)= 999; +} + +/*:232*//*240:*/ +#line 5279 "tex.w" + +for(k= int_base;k<=del_code_base-1;k++)eqtb[k].i= 0; +mag= 1000;tolerance= 10000;hang_after= 1;max_dead_cycles= 25; +escape_char= '\\';end_line_char= carriage_return; +for(k= 0;k<=255;k++)del_code(k)= -1; +del_code('.')= 0; + +/*:240*//*250:*/ +#line 5471 "tex.w" + +for(k= dimen_base;k<=eqtb_size;k++)eqtb[k].sc= 0; + +/*:250*//*258:*/ +#line 5562 "tex.w" + +hash_used= frozen_control_sequence; +cs_count= 0; +eq_type(frozen_dont_expand)= dont_expand; +text(frozen_dont_expand)= /*1525:*/ +#line 25471 "tex.w" +400 +/*:1525*/ +#line 5566 "tex.w" +; + + +/*:258*//*552:*/ +#line 10819 "tex.w" + +font_ptr= null_font;fmem_ptr= 7; +font_name[null_font]= /*1639:*/ +#line 25813 "tex.w" +514 +/*:1639*/ +#line 10821 "tex.w" +;font_area[null_font]= empty_string; +hyphen_char[null_font]= '-';skew_char[null_font]= -1; +bchar_label[null_font]= non_address; +font_bchar[null_font]= non_char;font_false_bchar[null_font]= non_char; +font_bc[null_font]= 1;font_ec[null_font]= 0; +font_size[null_font]= 0;font_dsize[null_font]= 0; +char_base[null_font]= 0;width_base[null_font]= 0; +height_base[null_font]= 0;depth_base[null_font]= 0; +italic_base[null_font]= 0;lig_kern_base[null_font]= 0; +kern_base[null_font]= 0;exten_base[null_font]= 0; +font_glue[null_font]= null;font_params[null_font]= 7; +param_base[null_font]= -1; +for(k= 0;k<=6;k++)font_info[k].sc= 0; + +/*:552*//*946:*/ +#line 18486 "tex.w" + +for(k= -trie_op_size;k<=trie_op_size;k++)trie_op_hash[k]= 0; +for(k= 0;k<=255;k++)trie_used[k]= min_quarterword; +trie_op_ptr= 0; + +/*:946*//*951:*/ +#line 18612 "tex.w" + +trie_not_ready= true;trie_root= 0;trie_c[0]= si(0);trie_ptr= 0; + +/*:951*//*1216:*/ +#line 22800 "tex.w" + +text(frozen_protection)= /*1751:*/ +#line 26149 "tex.w" +626 +/*:1751*/ +#line 22801 "tex.w" +; + +/*:1216*//*1301:*/ +#line 23752 "tex.w" + +format_ident= /*1781:*/ +#line 26239 "tex.w" +656 +/*:1781*/ +#line 23753 "tex.w" +; + +/*:1301*//*1369:*/ +#line 24851 "tex.w" + +text(end_write)= /*1791:*/ +#line 26269 "tex.w" +666 +/*:1791*/ +#line 24852 "tex.w" +;eq_level(end_write)= level_one; +eq_type(end_write)= outer_call;equiv(end_write)= null; + +/*:1369*/ +#line 318 "tex.w" + +#endif + +/*:8*/ +#line 270 "tex.w" +; +} +/*57:*/ +#line 1474 "tex.w" + +void print_ln(void) +{switch(selector){ +case term_and_log:{wterm_cr;wlog_cr; +term_offset= 0;file_offset= 0; +}break; +case log_only:{wlog_cr;file_offset= 0; +}break; +case term_only:{wterm_cr;term_offset= 0; +}break; +case no_print:case pseudo:case new_string:do_nothing;break; +default:write_ln(write_file[selector]); +} +} + +/*:57*//*58:*/ +#line 1493 "tex.w" + +void print_char(ASCII_code s) +{ +if(/*244:*/ +#line 5312 "tex.w" +s==new_line_char + +/*:244*/ +#line 1496 "tex.w" +) +if(selector=str_ptr)s= /*1381:*/ +#line 25039 "tex.w" +256 +/*:1381*/ +#line 1538 "tex.w" +; + +else if(s<256) +if(s<0)s= /*1381:*/ +#line 25039 "tex.w" +256 +/*:1381*/ +#line 1541 "tex.w" +; +else{if(selector> pseudo) +{print_char(s);return; +} +if((/*244:*/ +#line 5312 "tex.w" +s==new_line_char + +/*:244*/ +#line 1545 "tex.w" +)) +if(selector=str_ptr)||(s<256))print(s); +else{j= str_start[s]; +while(j 0)&&(odd(selector)))|| +((file_offset> 0)&&(selector>=log_only)))print_ln(); +print_str(s); +} + +/*:62*//*63:*/ +#line 1608 "tex.w" + +void print_esc(str_number s) +{int c; +/*243:*/ +#line 5310 "tex.w" +c= escape_char + +/*:243*/ +#line 1611 "tex.w" +; +if(c>=0)if(c<256)print(c); +slow_print(s); +} + +/*:63*//*64:*/ +#line 1618 "tex.w" + +void print_the_digs(eight_bits k) + +{while(k> 0) +{decr(k); +if(dig[k]<10)print_char('0'+dig[k]); +else print_char('A'-10+dig[k]); +} +} + +/*:64*//*65:*/ +#line 1634 "tex.w" + +void print_int(int n) +{uint8_t k; +int m; +k= 0; +if(n<0) +{print_char('-'); +if(n> -100000000)negate(n); +else{m= -1-n;n= m/10;m= (m%10)+1;k= 1; +if(m<10)dig[0]= m; +else{dig[0]= 0;incr(n); +} +} +} +do{dig[k]= n%10;n= n/10;incr(k); +}while(!(n==0)); +print_the_digs(k); +} + +/*:65*//*262:*/ +#line 5640 "tex.w" + +void print_cs(int p) +{if(p=single_base) +if(p==null_cs) +{print_esc(/*1526:*/ +#line 25474 "tex.w" +401 +/*:1526*/ +#line 5645 "tex.w" +);print_esc(/*1527:*/ +#line 25477 "tex.w" +402 +/*:1527*/ +#line 5645 "tex.w" +);print_char(' '); +} +else{print_esc(p-single_base); +if(cat_code(p-single_base)==letter)print_char(' '); +} +else if(p=undefined_control_sequence)print_esc(/*1528:*/ +#line 25480 "tex.w" +403 +/*:1528*/ +#line 5653 "tex.w" +); +else if((text(p)<0)||(text(p)>=str_ptr))print_esc(/*1529:*/ +#line 25483 "tex.w" +404 +/*:1529*/ +#line 5654 "tex.w" +); + +else{print_esc(text(p)); +print_char(' '); +} +} + +/*:262*//*263:*/ +#line 5664 "tex.w" + +void sprint_cs(pointer p) +{if(p='a')c= c+'A'-'a'; +/*84:*/ +#line 1934 "tex.w" + +switch(c){ +case'0':case'1':case'2':case'3':case'4':case'5':case'6':case'7':case'8':case'9':if(deletions_allowed) +/*88:*/ +#line 2007 "tex.w" + +{s1= cur_tok;s2= cur_cmd;s3= cur_chr;s4= align_state; +align_state= 1000000;OK_to_interrupt= false; +if((last> first+1)&&(buffer[first+1]>='0')&&(buffer[first+1]<='9')) +c= c*10+buffer[first+1]-'0'*11; +else c= c-'0'; +while(c> 0) +{get_token(); +decr(c); +} +cur_tok= s1;cur_cmd= s2;cur_chr= s3;align_state= s4;OK_to_interrupt= true; +help2("I have just deleted some text, as you asked.") +("You can now delete more, or insert, or whatever."); +show_context();goto resume; +} + +/*:88*/ +#line 1937 "tex.w" +break; + +#ifdef DEBUG +case'D':{debug_help();goto resume;} +#endif +case'E':if(base_ptr> 0) +{print_nl("You want to edit file "); + +slow_print(input_stack[base_ptr].name_field); +print_str(" at line ");print_int(line); +interaction= scroll_mode;jump_out(); +}break; +case'H':/*89:*/ +#line 2023 "tex.w" + +{if(use_err_help) +{give_err_help();use_err_help= false; +} +else{if(help_ptr==0) +help2("Sorry, I don't know how to help in this situation.") +("Maybe you should try asking a human?"); +do{decr(help_ptr);print_str(help_line[help_ptr]);print_ln(); +}while(!(help_ptr==0)); +} +help4("Sorry, I already gave what help I could...") +("Maybe you should try asking a human?") +("An error might have occurred before I noticed any problems.") +("``If all else fails, read the instructions.'"); +goto resume; +} + +/*:89*/ +#line 1949 "tex.w" + +case'I':/*87:*/ +#line 1991 "tex.w" + +{begin_file_reading(); + +if(last> first+1) +{loc= first+1;buffer[first]= ' '; +} +else{prompt_input("insert>");loc= first; + +} +first= last; +cur_input.limit_field= last-1; +return; +} + +/*:87*/ +#line 1950 "tex.w" + +case'Q':case'R':case'S':/*86:*/ +#line 1974 "tex.w" + +{error_count= 0;interaction= batch_mode+c-'Q'; +print_str("OK, entering "); +switch(c){ +case'Q':{print_esc(/*1383:*/ +#line 25045 "tex.w" +258 +/*:1383*/ +#line 1978 "tex.w" +);decr(selector); +}break; +case'R':print_esc(/*1384:*/ +#line 25048 "tex.w" +259 +/*:1384*/ +#line 1980 "tex.w" +);break; +case'S':print_esc(/*1385:*/ +#line 25051 "tex.w" +260 +/*:1385*/ +#line 1981 "tex.w" +); +} +print_str("...");print_ln();update_terminal;return; +} + +/*:86*/ +#line 1951 "tex.w" + +case'X':{interaction= scroll_mode;jump_out(); +}break; +default:do_nothing; +} +/*85:*/ +#line 1958 "tex.w" + +{print_str("Type to proceed, S to scroll future error messages,"); + +print_nl("R to run without stopping, Q to run quietly,"); +print_nl("I to insert something, "); +if(base_ptr> 0)print_str("E to edit your file,"); +if(deletions_allowed) +print_nl("1 or ... or 9 to ignore the next 1 to 9 tokens of input,"); +print_nl("H for help, X to quit."); +} + +/*:85*/ +#line 1956 "tex.w" + + +/*:84*/ +#line 1919 "tex.w" +; +} + +/*:83*/ +#line 1903 "tex.w" +; +incr(error_count); +if(error_count==100) +{print_nl("(That makes 100 errors; please try again.)"); + +history= fatal_error_stop;jump_out(); +} +/*90:*/ +#line 2040 "tex.w" + +if(interaction> batch_mode)decr(selector); +if(use_err_help) +{print_ln();give_err_help(); +} +else while(help_ptr> 0) +{decr(help_ptr);print_nl(help_line[help_ptr]); +} +print_ln(); +if(interaction> batch_mode)incr(selector); +print_ln() + +/*:90*/ +#line 1910 "tex.w" +; +} + +/*:82*//*93:*/ +#line 2079 "tex.w" + +void fatal_error(char*s) +{normalize_selector(); +print_err("Emergency stop");help1(s);succumb; + +} + +/*:93*//*94:*/ +#line 2088 "tex.w" + +void overflow(char*s,int n) +{normalize_selector(); +print_err("TeX capacity exceeded, sorry ["); + +print_str(s);print_char('=');print_int(n);print_char(']'); +help2("If you really absolutely need more capacity,") +("you can ask a wizard to enlarge me."); +succumb; +} + +/*:94*//*95:*/ +#line 2107 "tex.w" + +void confusion(str_number s) + +{normalize_selector(); +if(history=max_buf_stack) +{max_buf_stack= last+1; +if(max_buf_stack==buf_size) +/*35:*/ +#line 1023 "tex.w" + +if(format_ident==0) +{write_ln(term_out,"Buffer size exceeded!");exit(0); + +} +else{cur_input.loc_field= first;cur_input.limit_field= last-1; +overflow("buffer size",buf_size); + +} + +/*:35*/ +#line 949 "tex.w" +; +} +buffer[last]= xord[(*f).d];get((*f));incr(last); +if(buffer[last-1]!=' ')last_nonblank= last; +} +last= last_nonblank;return true; +} +} + +/*:31*//*37:*/ +#line 1067 "tex.w" +bool init_terminal(void) +{ +t_open_in; +loop{wake_up_terminal;write(term_out,"**");update_terminal; + +if(!input_ln(&term_in,true)) +{write_ln(term_out); +write(term_out,"! End of file on the terminal... why?"); + +return false; +} +loc= first; +while((loc '~') + +/*:49*/ +#line 1267 "tex.w" +) +{append_char('^');append_char('^'); +if(k<0100)append_char(k+0100) +else if(k<0200)append_char(k-0100) +else{app_lc_hex(k/16);app_lc_hex(k%16); +} +} +else append_char(k); +g= make_string(); +} + +/*:48*/ +#line 1256 "tex.w" +; +/*51:*/ +#line 1324 "tex.w" + +{int k;for(k= 1;k<=file_name_size;k++)name_of_file[k]= pool_name[k-1];} +if(a_open_in(&pool_file)) +{c= false; +do{/*52:*/ +#line 1336 "tex.w" + +{if(eof(pool_file))bad_pool("! TEX.POOL has no check sum."); + +read(pool_file,m);read(pool_file,n); +if(m=='*')/*53:*/ +#line 1362 "tex.w" + +{a= 0;k= 1; +loop{if((xord[n]<'0')||(xord[n]> '9')) +bad_pool("! TEX.POOL check sum doesn't have nine digits."); + +a= 10*a+xord[n]-'0'; +if(k==9)goto done; +incr(k);read(pool_file,n); +} +done:if(a!=0)bad_pool("! TEX.POOL doesn't match; TANGLE me again."); + +c= true; +} + +/*:53*/ +#line 1340 "tex.w" + +else{if((xord[m]<'0')||(xord[m]> '9')|| +(xord[n]<'0')||(xord[n]> '9')) +bad_pool("! TEX.POOL line doesn't begin with two digits."); + +l= xord[m]*10+xord[n]-'0'*11; +if(pool_ptr+l+string_vacancies> pool_size) +bad_pool("! You have to increase POOLSIZE."); + +for(k= 1;k<=l;k++) +{if(eoln(pool_file))m= ' ';else read(pool_file,m); +append_char(xord[m]); +} +read_ln(pool_file);g= make_string(); +} +} + +/*:52*/ +#line 1329 "tex.w" +; +}while(!(c)); +a_close(&pool_file);return true; +} +else bad_pool("! I can't read TEX.POOL.") + + +/*:51*/ +#line 1258 "tex.w" +; +} +#endif + +/*:47*//*66:*/ +#line 1656 "tex.w" +void print_two(int n) +{n= abs(n)%100;print_char('0'+(n/10)); +print_char('0'+(n%10)); +} + +/*:66*//*67:*/ +#line 1663 "tex.w" +void print_hex(int n) + +{uint8_t k; +k= 0;print_char('"'); +do{dig[k]= n%16;n= n/16;incr(k); +}while(!(n==0)); +print_the_digs(k); +} + +/*:67*//*69:*/ +#line 1683 "tex.w" +void print_roman_int(int n) +{ +pool_pointer j,k; +nonnegative_integer u,v; +j= str_start[/*1382:*/ +#line 25042 "tex.w" +257 +/*:1382*/ +#line 1687 "tex.w" +];v= 1000; +loop{while(n>=v) +{print_char(so(str_pool[j]));n= n-v; +} +if(n<=0)return; +k= j+2;u= v/(so(str_pool[k-1])-'0'); +if(str_pool[k-1]==si('2')) +{k= k+2;u= u/(so(str_pool[k-1])-'0'); +} +if(n+u>=v) +{print_char(so(str_pool[k]));n= n+u; +} +else{j= j+2;v= v/(so(str_pool[j-1])-'0'); +} +} +} + +/*:69*//*70:*/ +#line 1707 "tex.w" +void print_current_string(void) +{pool_pointer j; +j= str_start[str_ptr]; +while(j 0) +{decr(k);a= (a+dig[k]*two)/10; +} +return(a+1)/2; +} + +/*:102*//*103:*/ +#line 2229 "tex.w" +void print_scaled(scaled s) + +{scaled delta; +if(s<0) +{print_char('-');negate(s); +} +print_int(s/unity); +print_char('.'); +s= 10*(s%unity)+5;delta= 10; +do{if(delta> unity)s= s+0100000-50000; +print_char('0'+(s/unity));s= 10*(s%unity);delta= delta*10; +}while(!(s<=delta)); +} + +/*:103*//*105:*/ +#line 2279 "tex.w" +scaled mult_and_add(int n,scaled x,scaled y,scaled max_answer) +{if(n<0) +{negate(x);negate(n); +} +if(n==0)return y; +else if(((x<=(max_answer-y)/n)&&(-x<=(max_answer+y)/n))) +return n*x+y; +else{arith_error= true;return 0; +} +} + +/*:105*//*106:*/ +#line 2292 "tex.w" +scaled x_over_n(scaled x,int n) +{bool negative; +scaled x_over_n;negative= false; +if(n==0) +{arith_error= true;x_over_n= 0;rem= x; +} +else{if(n<0) +{negate(x);negate(n);negative= true; +} +if(x>=0) +{x_over_n= x/n;rem= x%n; +} +else{x_over_n= -((-x)/n);rem= -((-x)%n); +} +} +if(negative)negate(rem); +return x_over_n;} + +/*:106*//*107:*/ +#line 2317 "tex.w" +scaled xn_over_d(scaled x,int n,int d) +{bool positive; +nonnegative_integer t,u,v; +scaled xn_over_d;if(x>=0)positive= true; +else{negate(x);positive= false; +} +t= (x%0100000)*n; +u= (x/0100000)*n+(t/0100000); +v= (u%d)*0100000+(t%0100000); +if(u/d>=0100000)arith_error= true; +else u= 0100000*(u/d)+(v/d); +if(positive) +{xn_over_d= u;rem= v%d; +} +else{xn_over_d= -u;rem= -(v%d); +} +return xn_over_d;} + +/*:107*//*108:*/ +#line 2355 "tex.w" +halfword badness(scaled t,scaled s) +{int r; + +if(t==0)return 0; +else if(s<=0)return inf_bad; +else{if(t<=7230584)r= (t*297)/s; +else if(s>=1663497)r= t/(s/297); +else r= t; +if(r> 1290)return inf_bad; +else return(r*r*r+0400000)/01000000; +} +} + +/*:108*//*114:*/ +#line 2524 "tex.w" + +#ifdef DEBUG +void print_word(memory_word w) + +{print_int(w.i);print_char(' '); +print_scaled(w.sc);print_char(' '); +print_scaled(round(unity*float(w.gr)));print_ln(); + +print_int(w.hh.lh);print_char('=');print_int(w.hh.b0);print_char(':'); +print_int(w.hh.b1);print_char(';');print_int(w.hh.rh);print_char(' '); +print_int(w.qqqq.b0);print_char(':');print_int(w.qqqq.b1);print_char(':'); +print_int(w.qqqq.b2);print_char(':');print_int(w.qqqq.b3); +} +#endif + +/*:114*//*119:*/ +#line 2633 "tex.w" +/*292:*/ +#line 6322 "tex.w" + +void show_token_list(int p,int q,int l) +{ +int m,c; +ASCII_code match_chr; +ASCII_code n; +match_chr= '#';n= '0';tally= 0; +while((p!=null)&&(tally mem_end)) +{print_esc(/*1386:*/ +#line 25054 "tex.w" +261 +/*:1386*/ +#line 6341 "tex.w" +);return; + +} +if(info(p)>=cs_token_flag)print_cs(info(p)-cs_token_flag); +else{m= info(p)/0400;c= info(p)%0400; +if(info(p)<0)print_esc(/*1567:*/ +#line 25597 "tex.w" +442 +/*:1567*/ +#line 6346 "tex.w" +); + +else/*294:*/ +#line 6355 "tex.w" + +switch(m){ +case left_brace:case right_brace:case math_shift:case tab_mark:case sup_mark:case sub_mark:case spacer: +case letter:case other_char:print(c);break; +case mac_param:{print(c);print(c); +}break; +case out_param:{print(match_chr); +if(c<=9)print_char(c+'0'); +else{print_char('!');return; +} +}break; +case match:{match_chr= c;print(c);incr(n);print_char(n); +if(n> '9')return; +}break; +case end_match:print_str("->");break; + +default:print_esc(/*1567:*/ +#line 25597 "tex.w" +442 +/*:1567*/ +#line 6371 "tex.w" +); + +} + +/*:294*/ +#line 6348 "tex.w" +; +} + +/*:293*/ +#line 6331 "tex.w" +; +p= link(p); +} +if(p!=null)print_esc(/*1566:*/ +#line 25594 "tex.w" +441 +/*:1566*/ +#line 6334 "tex.w" +); + + +} + +/*:292*/ +#line 2633 "tex.w" + +/*306:*/ +#line 6673 "tex.w" + +void runaway(void) +{pointer p; +if(scanner_status> skipping) +{print_nl("Runaway "); + +switch(scanner_status){ +case defining:{print_str("definition");p= def_ref; +}break; +case matching:{print_str("argument");p= temp_head; +}break; +case aligning:{print_str("preamble");p= hold_head; +}break; +case absorbing:{print_str("text");p= def_ref; +} +} +print_char('?');print_ln();show_token_list(link(p),null,error_line-10); +} +} + +/*:306*/ +#line 2634 "tex.w" + + +/*:119*//*120:*/ +#line 2645 "tex.w" +pointer get_avail(void) +{pointer p; +p= avail; +if(p!=null)avail= link(avail); +else if(mem_end p+1)/*128:*/ +#line 2801 "tex.w" + +{node_size(p)= r-p; + +rover= p; +goto found; +} + +/*:128*/ +#line 2796 "tex.w" +; +if(r==p)if(rlink(p)!=p) +/*129:*/ +#line 2810 "tex.w" + +{rover= rlink(p);t= llink(p); +llink(rover)= t;rlink(t)= rover; +goto found; +} + +/*:129*/ +#line 2798 "tex.w" +; +node_size(p)= q-p + +/*:127*/ +#line 2744 "tex.w" +; + +p= rlink(p); +}while(!(p==rover)); +if(s==010000000000) +{return max_halfword; +} +if(lo_mem_max+2=1998)t= lo_mem_max+1000; +else t= lo_mem_max+1+(hi_mem_min-lo_mem_max)/2; + +p= llink(rover);q= lo_mem_max;rlink(p)= q;llink(rover)= q; +if(t> mem_bot+max_halfword)t= mem_bot+max_halfword; +rlink(q)= rover;llink(q)= p;link(q)= empty_flag;node_size(q)= t-lo_mem_max; +lo_mem_max= t;link(lo_mem_max)= null;info(lo_mem_max)= null; +rover= q;goto restart; +} + +/*:126*/ +#line 2752 "tex.w" +; +overflow("main memory size",mem_max+1-mem_min); + + +found:link(r)= null; +#ifdef STAT +var_used= var_used+s; +#endif + +return r; +} + +/*:125*//*130:*/ +#line 2821 "tex.w" +void free_node(pointer p,halfword s) + +{pointer q; +node_size(p)= s;link(p)= empty_flag; +q= llink(rover);llink(p)= q;rlink(p)= rover; +llink(rover)= p;rlink(q)= p; +#ifdef STAT +var_used= var_used-s; +#endif + +} + +/*:130*//*131:*/ +#line 2838 "tex.w" + +#ifdef INIT +void sort_avail(void) + +{pointer p,q,r; +pointer old_rover; +p= get_node(010000000000); +p= rlink(rover);rlink(rover)= max_halfword;old_rover= rover; +while(p!=old_rover)/*132:*/ +#line 2860 "tex.w" + +if(p mem_end)||(p=lo_mem_max)||(p=lo_mem_max)||(rlink(p) lo_mem_max)||(llink(rlink(p))!=p))clobbered= true; +if(clobbered) +{print_nl("Double-AVAIL list clobbered at "); +print_int(q);goto done2; +} +for(q= p;q<=p+node_size(p)-1;q++) +{if(is_free[q]) +{print_nl("Doubly free location at "); + +print_int(q);goto done2; +} +is_free[q]= true; +} +q= p;p= rlink(p); +}while(!(p==rover)); +done2: + +/*:169*/ +#line 3459 "tex.w" +; +/*170:*/ +#line 3505 "tex.w" + +p= mem_min; +while(p<=lo_mem_max) +{if(is_empty(p)) +{print_nl("Bad flag at ");print_int(p); + +} +while((p<=lo_mem_max)&&!is_free[p])incr(p); +while((p<=lo_mem_max)&&is_free[p])incr(p); +} + +/*:170*/ +#line 3460 "tex.w" +; +if(print_locs)/*171:*/ +#line 3516 "tex.w" + +{print_nl("New busy locs:"); +for(p= mem_min;p<=lo_mem_max;p++) +if(!is_free[p]&&((p> was_lo_max)||was_free[p])) +{print_char(' ');print_int(p); +} +for(p= hi_mem_min;p<=mem_end;p++) +if(!is_free[p]&& +((p was_mem_end)||was_free[p])) +{print_char(' ');print_int(p); +} +} + +/*:171*/ +#line 3461 "tex.w" +; +for(p= mem_min;p<=lo_mem_max;p++)was_free[p]= is_free[p]; +for(p= hi_mem_min;p<=mem_end;p++)was_free[p]= is_free[p]; + +was_mem_end= mem_end;was_lo_max= lo_mem_max;was_hi_min= hi_mem_min; +} +#endif + +/*:167*//*172:*/ +#line 3538 "tex.w" + +#ifdef DEBUG +void search_mem(pointer p) +{int q; +for(q= mem_min;q<=lo_mem_max;q++) +{if(link(q)==p) +{print_nl("LINK(");print_int(q);print_char(')'); +} +if(info(q)==p) +{print_nl("INFO(");print_int(q);print_char(')'); +} +} +for(q= hi_mem_min;q<=mem_end;q++) +{if(link(q)==p) +{print_nl("LINK(");print_int(q);print_char(')'); +} +if(info(q)==p) +{print_nl("INFO(");print_int(q);print_char(')'); +} +} +/*255:*/ +#line 5513 "tex.w" + +for(q= active_base;q<=box_base+255;q++) +{if(equiv(q)==p) +{print_nl("EQUIV(");print_int(q);print_char(')'); +} +} + +/*:255*/ +#line 3558 "tex.w" +; +/*285:*/ +#line 6172 "tex.w" + +if(save_ptr> 0)for(q= 0;q<=save_ptr-1;q++) +{if(equiv_field(save_stack[q])==p) +{print_nl("SAVE(");print_int(q);print_char(')'); +} +} + +/*:285*/ +#line 3559 "tex.w" +; +/*933:*/ +#line 18262 "tex.w" + +for(q= 0;q<=hyph_size;q++) +{if(hyph_list[q]==p) +{print_nl("HYPH(");print_int(q);print_char(')'); +} +} + +/*:933*/ +#line 3560 "tex.w" +; +} +#endif + +/*:172*//*174:*/ +#line 3588 "tex.w" +void short_display(int p) +{int n; +while(p> mem_min) +{if(is_char_node(p)) +{if(p<=mem_end) +{if(font(p)!=font_in_short_display) +{if((font(p) font_max)) +print_char('*'); + +else/*267:*/ +#line 5855 "tex.w" + +print_esc(font_id_text(font(p))) + +/*:267*/ +#line 3597 "tex.w" +; +print_char(' ');font_in_short_display= font(p); +} +print_ASCII(qo(character(p))); +} +} +else/*175:*/ +#line 3608 "tex.w" + +switch(type(p)){ +case hlist_node:case vlist_node:case ins_node:case whatsit_node:case mark_node:case adjust_node: +case unset_node:print_str("[]");break; +case rule_node:print_char('|');break; +case glue_node:if(glue_ptr(p)!=zero_glue)print_char(' ');break; +case math_node:print_char('$');break; +case ligature_node:short_display(lig_ptr(p));break; +case disc_node:{short_display(pre_break(p)); +short_display(post_break(p)); +n= replace_count(p); +while(n> 0) +{if(link(p)!=null)p= link(p); +decr(n); +} +}break; +default:do_nothing; +} + +/*:175*/ +#line 3603 "tex.w" +; +p= link(p); +} +} + +/*:174*//*176:*/ +#line 3631 "tex.w" +void print_font_and_char(int p) +{if(p> mem_end)print_esc(/*1386:*/ +#line 25054 "tex.w" +261 +/*:1386*/ +#line 3632 "tex.w" +); +else{if((font(p) font_max))print_char('*'); + +else/*267:*/ +#line 5855 "tex.w" + +print_esc(font_id_text(font(p))) + +/*:267*/ +#line 3635 "tex.w" +; +print_char(' ');print_ASCII(qo(character(p))); +} +} + +void print_mark(int p) +{print_char('{'); +if((p mem_end))print_esc(/*1386:*/ +#line 25054 "tex.w" +261 +/*:1386*/ +#line 3642 "tex.w" +); +else show_token_list(link(p),null,max_print_line-10); +print_char('}'); +} + +void print_rule_dimen(scaled d) +{if(is_running(d))print_char('*');else print_scaled(d); + +} + +/*:176*//*177:*/ +#line 3655 "tex.w" +void print_glue(scaled d,int order,str_number s) + +{print_scaled(d); +if((order filll))print_str("foul"); +else if(order> normal) +{print_str("fil"); +while(order> fil) +{print_char('l');decr(order); +} +} +else if(s!=0)print(s); +} + +/*:177*//*178:*/ +#line 3670 "tex.w" +void print_spec(int p,str_number s) + +{if((p=lo_mem_max))print_char('*'); + +else{print_scaled(width(p)); +if(s!=0)print(s); +if(stretch(p)!=0) +{print_str(" plus ");print_glue(stretch(p),stretch_order(p),s); +} +if(shrink(p)!=0) +{print_str(" minus ");print_glue(shrink(p),shrink_order(p),s); +} +} +} + +/*:178*//*179:*/ +#line 3688 "tex.w" +/*691:*/ +#line 13645 "tex.w" + +void print_fam_and_char(pointer p) +{print_esc(/*1490:*/ +#line 25366 "tex.w" +365 +/*:1490*/ +#line 13647 "tex.w" +);print_int(fam(p));print_char(' '); +print_ASCII(qo(character(p))); +} + +void print_delimiter(pointer p) +{int a; +a= small_fam(p)*256+qo(small_char(p)); +a= a*0x1000+large_fam(p)*256+qo(large_char(p)); +if(a<0)print_int(a); +else print_hex(a); +} + +/*:691*//*692:*/ +#line 13666 "tex.w" + +void show_info(void); +void print_subsidiary_data(pointer p,ASCII_code c) + +{if(cur_length>=depth_threshold) +{if(math_type(p)!=empty)print_str(" []"); +} +else{append_char(c); +temp_ptr= p; +switch(math_type(p)){ +case math_char:{print_ln();print_current_string();print_fam_and_char(p); +}break; +case sub_box:show_info();break; +case sub_mlist:if(info(p)==null) +{print_ln();print_current_string();print_str("{}"); +} +else show_info();break; +default:do_nothing; +} +flush_char; +} +} + +/*:692*//*694:*/ +#line 13703 "tex.w" + +void print_style(int c) +{switch(c/2){ +case 0:print_esc(/*1645:*/ +#line 25831 "tex.w" +520 +/*:1645*/ +#line 13706 "tex.w" +);break; +case 1:print_esc(/*1646:*/ +#line 25834 "tex.w" +521 +/*:1646*/ +#line 13707 "tex.w" +);break; +case 2:print_esc(/*1647:*/ +#line 25837 "tex.w" +522 +/*:1647*/ +#line 13708 "tex.w" +);break; +case 3:print_esc(/*1648:*/ +#line 25840 "tex.w" +523 +/*:1648*/ +#line 13709 "tex.w" +);break; +default:print_str("Unknown style!"); +} +} + +/*:694*/ +#line 3688 "tex.w" + +/*225:*/ +#line 4671 "tex.w" + +void print_skip_param(int n) +{switch(n){ +case line_skip_code:print_esc(/*1405:*/ +#line 25111 "tex.w" +280 +/*:1405*/ +#line 4674 "tex.w" +);break; +case baseline_skip_code:print_esc(/*1406:*/ +#line 25114 "tex.w" +281 +/*:1406*/ +#line 4675 "tex.w" +);break; +case par_skip_code:print_esc(/*1407:*/ +#line 25117 "tex.w" +282 +/*:1407*/ +#line 4676 "tex.w" +);break; +case above_display_skip_code:print_esc(/*1408:*/ +#line 25120 "tex.w" +283 +/*:1408*/ +#line 4677 "tex.w" +);break; +case below_display_skip_code:print_esc(/*1409:*/ +#line 25123 "tex.w" +284 +/*:1409*/ +#line 4678 "tex.w" +);break; +case above_display_short_skip_code:print_esc(/*1410:*/ +#line 25126 "tex.w" +285 +/*:1410*/ +#line 4679 "tex.w" +);break; +case below_display_short_skip_code:print_esc(/*1411:*/ +#line 25129 "tex.w" +286 +/*:1411*/ +#line 4680 "tex.w" +);break; +case left_skip_code:print_esc(/*1412:*/ +#line 25132 "tex.w" +287 +/*:1412*/ +#line 4681 "tex.w" +);break; +case right_skip_code:print_esc(/*1413:*/ +#line 25135 "tex.w" +288 +/*:1413*/ +#line 4682 "tex.w" +);break; +case top_skip_code:print_esc(/*1414:*/ +#line 25138 "tex.w" +289 +/*:1414*/ +#line 4683 "tex.w" +);break; +case split_top_skip_code:print_esc(/*1415:*/ +#line 25141 "tex.w" +290 +/*:1415*/ +#line 4684 "tex.w" +);break; +case tab_skip_code:print_esc(/*1416:*/ +#line 25144 "tex.w" +291 +/*:1416*/ +#line 4685 "tex.w" +);break; +case space_skip_code:print_esc(/*1417:*/ +#line 25147 "tex.w" +292 +/*:1417*/ +#line 4686 "tex.w" +);break; +case xspace_skip_code:print_esc(/*1418:*/ +#line 25150 "tex.w" +293 +/*:1418*/ +#line 4687 "tex.w" +);break; +case par_fill_skip_code:print_esc(/*1419:*/ +#line 25153 "tex.w" +294 +/*:1419*/ +#line 4688 "tex.w" +);break; +case thin_mu_skip_code:print_esc(/*1420:*/ +#line 25156 "tex.w" +295 +/*:1420*/ +#line 4689 "tex.w" +);break; +case med_mu_skip_code:print_esc(/*1421:*/ +#line 25159 "tex.w" +296 +/*:1421*/ +#line 4690 "tex.w" +);break; +case thick_mu_skip_code:print_esc(/*1422:*/ +#line 25162 "tex.w" +297 +/*:1422*/ +#line 4691 "tex.w" +);break; +default:print_str("[unknown glue parameter!]"); +} +} + +/*:225*/ +#line 3689 "tex.w" + + +/*:179*//*182:*/ +#line 3726 "tex.w" +void show_node_list(int p) +{ +int n; +double g; +if(cur_length> depth_threshold) +{if(p> null)print_str(" []"); + +return; +} +n= 0; +while(p> mem_min) +{print_ln();print_current_string(); +if(p> mem_end) +{print_str("Bad link, display aborted.");return; + +} +incr(n);if(n> breadth_max) +{print_str("etc.");return; + +} +/*183:*/ +#line 3752 "tex.w" + +if(is_char_node(p))print_font_and_char(p); +else switch(type(p)){ +case hlist_node:case vlist_node:case unset_node:/*184:*/ +#line 3771 "tex.w" + +{if(type(p)==hlist_node)print_esc('h'); +else if(type(p)==vlist_node)print_esc('v'); +else print_esc(/*1388:*/ +#line 25060 "tex.w" +263 +/*:1388*/ +#line 3774 "tex.w" +); +print_str("box(");print_scaled(height(p));print_char('+'); +print_scaled(depth(p));print_str(")x");print_scaled(width(p)); +if(type(p)==unset_node) +/*185:*/ +#line 3787 "tex.w" + +{if(span_count(p)!=min_quarterword) +{print_str(" (");print_int(qo(span_count(p))+1); +print_str(" columns)"); +} +if(glue_stretch(p)!=0) +{print_str(", stretch ");print_glue(glue_stretch(p),glue_order(p),0); +} +if(glue_shrink(p)!=0) +{print_str(", shrink ");print_glue(glue_shrink(p),glue_sign(p),0); +} +} + +/*:185*/ +#line 3778 "tex.w" + +else{/*186:*/ +#line 3810 "tex.w" + +g= float(glue_set(p)); +if((g!=float_constant(0))&&(glue_sign(p)!=normal)) +{print_str(", glue set "); +if(glue_sign(p)==shrinking)print_str("- "); +if(abs(mem[p+glue_offset].i)<04000000)print_str("?.?"); +else if(abs(g)> float_constant(20000)) +{if(g> float_constant(0))print_char('>'); +else print_str("< -"); +print_glue(20000*unity,glue_order(p),0); +} +else print_glue(round(unity*g),glue_order(p),0); + +} + +/*:186*/ +#line 3779 "tex.w" +; +if(shift_amount(p)!=0) +{print_str(", shifted ");print_scaled(shift_amount(p)); +} +} +node_list_display(list_ptr(p)); +} + +/*:184*/ +#line 3755 "tex.w" +break; +case rule_node:/*187:*/ +#line 3825 "tex.w" + +{print_esc(/*1389:*/ +#line 25063 "tex.w" +264 +/*:1389*/ +#line 3826 "tex.w" +);print_rule_dimen(height(p));print_char('+'); +print_rule_dimen(depth(p));print_str(")x");print_rule_dimen(width(p)); +} + +/*:187*/ +#line 3756 "tex.w" +break; +case ins_node:/*188:*/ +#line 3830 "tex.w" + +{print_esc(/*1390:*/ +#line 25066 "tex.w" +265 +/*:1390*/ +#line 3831 "tex.w" +);print_int(qo(subtype(p))); +print_str(", natural size ");print_scaled(height(p)); +print_str("; split(");print_spec(split_top_ptr(p),0); +print_char(',');print_scaled(depth(p)); +print_str("); float cost ");print_int(float_cost(p)); +node_list_display(ins_ptr(p)); +} + +/*:188*/ +#line 3757 "tex.w" +break; +case whatsit_node:/*1356:*/ +#line 24746 "tex.w" + +switch(subtype(p)){ +case open_node:{print_write_whatsit(/*1783:*/ +#line 26245 "tex.w" +658 +/*:1783*/ +#line 24748 "tex.w" +,p); +print_char('=');print_file_name(open_name(p),open_area(p),open_ext(p)); +}break; +case write_node:{print_write_whatsit(/*1568:*/ +#line 25600 "tex.w" +443 +/*:1568*/ +#line 24751 "tex.w" +,p); +print_mark(write_tokens(p)); +}break; +case close_node:print_write_whatsit(/*1784:*/ +#line 26248 "tex.w" +659 +/*:1784*/ +#line 24754 "tex.w" +,p);break; +case special_node:{print_esc(/*1785:*/ +#line 26251 "tex.w" +660 +/*:1785*/ +#line 24755 "tex.w" +); +print_mark(write_tokens(p)); +}break; +case language_node:{print_esc(/*1787:*/ +#line 26257 "tex.w" +662 +/*:1787*/ +#line 24758 "tex.w" +); +print_int(what_lang(p));print_str(" (hyphenmin "); +print_int(what_lhm(p));print_char(','); +print_int(what_rhm(p));print_char(')'); +}break; +default:print_str("whatsit?"); +} + +/*:1356*/ +#line 3758 "tex.w" +break; +case glue_node:/*189:*/ +#line 3839 "tex.w" + +if(subtype(p)>=a_leaders)/*190:*/ +#line 3857 "tex.w" + +{print_esc(empty_string); +if(subtype(p)==c_leaders)print_char('c'); +else if(subtype(p)==x_leaders)print_char('x'); +print_str("leaders ");print_spec(glue_ptr(p),0); +node_list_display(leader_ptr(p)); +} + +/*:190*/ +#line 3840 "tex.w" + +else{print_esc(/*1391:*/ +#line 25069 "tex.w" +266 +/*:1391*/ +#line 3841 "tex.w" +); +if(subtype(p)!=normal) +{print_char('('); +if(subtype(p) 1)print_char('|'); +font_in_short_display= font(lig_char(p));short_display(lig_ptr(p)); +if(odd(subtype(p)))print_char('|'); +print_char(')'); +} + +/*:193*/ +#line 3762 "tex.w" +break; +case penalty_node:/*194:*/ +#line 3895 "tex.w" + +{print_esc(/*1399:*/ +#line 25093 "tex.w" +274 +/*:1399*/ +#line 3896 "tex.w" +);print_int(penalty(p)); +} + +/*:194*/ +#line 3763 "tex.w" +break; +case disc_node:/*195:*/ +#line 3902 "tex.w" + +{print_esc(/*1400:*/ +#line 25096 "tex.w" +275 +/*:1400*/ +#line 3903 "tex.w" +); +if(replace_count(p)> 0) +{print_str(" replacing ");print_int(replace_count(p)); +} +node_list_display(pre_break(p)); +append_char('|');show_node_list(post_break(p));flush_char; +} + +/*:195*/ +#line 3764 "tex.w" +break; +case mark_node:/*196:*/ +#line 3911 "tex.w" + +{print_esc(/*1401:*/ +#line 25099 "tex.w" +276 +/*:1401*/ +#line 3912 "tex.w" +);print_mark(mark_ptr(p)); +} + +/*:196*/ +#line 3765 "tex.w" +break; +case adjust_node:/*197:*/ +#line 3915 "tex.w" + +{print_esc(/*1402:*/ +#line 25102 "tex.w" +277 +/*:1402*/ +#line 3916 "tex.w" +);node_list_display(adjust_ptr(p)); +} + +/*:197*/ +#line 3766 "tex.w" +break; +/*690:*/ +#line 13635 "tex.w" + +case style_node:print_style(subtype(p));break; +case choice_node:/*695:*/ +#line 13714 "tex.w" + +{print_esc(/*1547:*/ +#line 25537 "tex.w" +422 +/*:1547*/ +#line 13715 "tex.w" +); +append_char('D');show_node_list(display_mlist(p));flush_char; +append_char('T');show_node_list(text_mlist(p));flush_char; +append_char('S');show_node_list(script_mlist(p));flush_char; +append_char('s');show_node_list(script_script_mlist(p));flush_char; +} + +/*:695*/ +#line 13637 "tex.w" +break; +case ord_noad:case op_noad:case bin_noad:case rel_noad:case open_noad:case close_noad:case punct_noad:case inner_noad: +case radical_noad:case over_noad:case under_noad:case vcenter_noad:case accent_noad: +case left_noad:case right_noad:/*696:*/ +#line 13722 "tex.w" + +{switch(type(p)){ +case ord_noad:print_esc(/*1649:*/ +#line 25843 "tex.w" +524 +/*:1649*/ +#line 13724 "tex.w" +);break; +case op_noad:print_esc(/*1650:*/ +#line 25846 "tex.w" +525 +/*:1650*/ +#line 13725 "tex.w" +);break; +case bin_noad:print_esc(/*1651:*/ +#line 25849 "tex.w" +526 +/*:1651*/ +#line 13726 "tex.w" +);break; +case rel_noad:print_esc(/*1652:*/ +#line 25852 "tex.w" +527 +/*:1652*/ +#line 13727 "tex.w" +);break; +case open_noad:print_esc(/*1653:*/ +#line 25855 "tex.w" +528 +/*:1653*/ +#line 13728 "tex.w" +);break; +case close_noad:print_esc(/*1654:*/ +#line 25858 "tex.w" +529 +/*:1654*/ +#line 13729 "tex.w" +);break; +case punct_noad:print_esc(/*1655:*/ +#line 25861 "tex.w" +530 +/*:1655*/ +#line 13730 "tex.w" +);break; +case inner_noad:print_esc(/*1656:*/ +#line 25864 "tex.w" +531 +/*:1656*/ +#line 13731 "tex.w" +);break; +case over_noad:print_esc(/*1657:*/ +#line 25867 "tex.w" +532 +/*:1657*/ +#line 13732 "tex.w" +);break; +case under_noad:print_esc(/*1658:*/ +#line 25870 "tex.w" +533 +/*:1658*/ +#line 13733 "tex.w" +);break; +case vcenter_noad:print_esc(/*1561:*/ +#line 25579 "tex.w" +436 +/*:1561*/ +#line 13734 "tex.w" +);break; +case radical_noad:{print_esc(/*1555:*/ +#line 25561 "tex.w" +430 +/*:1555*/ +#line 13735 "tex.w" +);print_delimiter(left_delimiter(p)); +}break; +case accent_noad:{print_esc(/*1530:*/ +#line 25486 "tex.w" +405 +/*:1530*/ +#line 13737 "tex.w" +);print_fam_and_char(accent_chr(p)); +}break; +case left_noad:{print_esc(/*1659:*/ +#line 25873 "tex.w" +534 +/*:1659*/ +#line 13739 "tex.w" +);print_delimiter(delimiter(p)); +}break; +case right_noad:{print_esc(/*1660:*/ +#line 25876 "tex.w" +535 +/*:1660*/ +#line 13741 "tex.w" +);print_delimiter(delimiter(p)); +} +} +if(subtype(p)!=normal) +if(subtype(p)==limits)print_esc(/*1661:*/ +#line 25879 "tex.w" +536 +/*:1661*/ +#line 13745 "tex.w" +); +else print_esc(/*1662:*/ +#line 25882 "tex.w" +537 +/*:1662*/ +#line 13746 "tex.w" +); +if(type(p)=pool_size) +depth_threshold= pool_size-pool_ptr-1; + +show_node_list(p); +print_ln(); +} + +/*:198*//*200:*/ +#line 3946 "tex.w" +void delete_token_ref(pointer p) + +{if(token_ref_count(p)==null)flush_list(p); +else decr(token_ref_count(p)); +} + +/*:200*//*201:*/ +#line 3960 "tex.w" +void delete_glue_ref(pointer p) +fast_delete_glue_ref(p) + +/*:201*//*202:*/ +#line 3968 "tex.w" +void flush_node_list(pointer p) +{ +pointer q; +while(p!=null) + +{q= link(p); +if(is_char_node(p))free_avail(p) +else{switch(type(p)){ +case hlist_node:case vlist_node:case unset_node:{flush_node_list(list_ptr(p)); +free_node(p,box_node_size);goto done; +} +case rule_node:{free_node(p,rule_node_size);goto done; +} +case ins_node:{flush_node_list(ins_ptr(p)); +delete_glue_ref(split_top_ptr(p)); +free_node(p,ins_node_size);goto done; +} +case whatsit_node:/*1358:*/ +#line 24780 "tex.w" + +{switch(subtype(p)){ +case open_node:free_node(p,open_node_size);break; +case write_node:case special_node:{delete_token_ref(write_tokens(p)); +free_node(p,write_node_size);goto done; +} +case close_node:case language_node:free_node(p,small_node_size);break; +default:confusion(/*1790:*/ +#line 26266 "tex.w" +665 +/*:1790*/ +#line 24787 "tex.w" +); + +} +goto done; +} + +/*:1358*/ +#line 3985 "tex.w" + +case glue_node:{fast_delete_glue_ref(glue_ptr(p)); +if(leader_ptr(p)!=null)flush_node_list(leader_ptr(p)); +}break; +case kern_node:case math_node:case penalty_node:do_nothing;break; +case ligature_node:flush_node_list(lig_ptr(p));break; +case mark_node:delete_token_ref(mark_ptr(p));break; +case disc_node:{flush_node_list(pre_break(p)); +flush_node_list(post_break(p)); +}break; +case adjust_node:flush_node_list(adjust_ptr(p));break; +/*698:*/ +#line 13774 "tex.w" + +case style_node:{free_node(p,style_node_size);goto done; +} +case choice_node:{flush_node_list(display_mlist(p)); +flush_node_list(text_mlist(p)); +flush_node_list(script_mlist(p)); +flush_node_list(script_script_mlist(p)); +free_node(p,style_node_size);goto done; +} +case ord_noad:case op_noad:case bin_noad:case rel_noad:case open_noad:case close_noad:case punct_noad:case inner_noad: +case radical_noad:case over_noad:case under_noad:case vcenter_noad:case accent_noad: +{if(math_type(nucleus(p))>=sub_box) +flush_node_list(info(nucleus(p))); +if(math_type(supscr(p))>=sub_box) +flush_node_list(info(supscr(p))); +if(math_type(subscr(p))>=sub_box) +flush_node_list(info(subscr(p))); +if(type(p)==radical_noad)free_node(p,radical_noad_size); +else if(type(p)==accent_noad)free_node(p,accent_noad_size); +else free_node(p,noad_size); +goto done; +} +case left_noad:case right_noad:{free_node(p,noad_size);goto done; +} +case fraction_noad:{flush_node_list(info(numerator(p))); +flush_node_list(info(denominator(p))); +free_node(p,fraction_noad_size);goto done; +} + +/*:698*/ +#line 3996 "tex.w" + +default:confusion(/*1403:*/ +#line 25105 "tex.w" +278 +/*:1403*/ +#line 3997 "tex.w" +); + +} +free_node(p,small_node_size); +done:;} +p= q; +} +} + +/*:202*//*204:*/ +#line 4030 "tex.w" +pointer copy_node_list(pointer p) + +{pointer h; +pointer q; +pointer r; +uint8_t words; +h= get_avail();q= h; +while(p!=null) +{/*205:*/ +#line 4045 "tex.w" + +words= 1; +if(is_char_node(p))r= get_avail(); +else/*206:*/ +#line 4054 "tex.w" + +switch(type(p)){ +case hlist_node:case vlist_node:case unset_node:{r= get_node(box_node_size); +mem[r+6]= mem[p+6];mem[r+5]= mem[p+5]; +list_ptr(r)= copy_node_list(list_ptr(p)); +words= 5; +}break; +case rule_node:{r= get_node(rule_node_size);words= rule_node_size; +}break; +case ins_node:{r= get_node(ins_node_size);mem[r+4]= mem[p+4]; +add_glue_ref(split_top_ptr(p)); +ins_ptr(r)= copy_node_list(ins_ptr(p)); +words= ins_node_size-1; +}break; +case whatsit_node:/*1357:*/ +#line 24766 "tex.w" + +switch(subtype(p)){ +case open_node:{r= get_node(open_node_size);words= open_node_size; +}break; +case write_node:case special_node:{r= get_node(write_node_size); +add_token_ref(write_tokens(p));words= write_node_size; +}break; +case close_node:case language_node:{r= get_node(small_node_size); +words= small_node_size; +}break; +default:confusion(/*1789:*/ +#line 26263 "tex.w" +664 +/*:1789*/ +#line 24776 "tex.w" +); + +} + +/*:1357*/ +#line 4069 "tex.w" +break; +case glue_node:{r= get_node(small_node_size);add_glue_ref(glue_ptr(p)); +glue_ptr(r)= glue_ptr(p);leader_ptr(r)= copy_node_list(leader_ptr(p)); +}break; +case kern_node:case math_node:case penalty_node:{r= get_node(small_node_size); +words= small_node_size; +}break; +case ligature_node:{r= get_node(small_node_size); +mem[lig_char(r)]= mem[lig_char(p)]; +lig_ptr(r)= copy_node_list(lig_ptr(p)); +}break; +case disc_node:{r= get_node(small_node_size); +pre_break(r)= copy_node_list(pre_break(p)); +post_break(r)= copy_node_list(post_break(p)); +}break; +case mark_node:{r= get_node(small_node_size);add_token_ref(mark_ptr(p)); +words= small_node_size; +}break; +case adjust_node:{r= get_node(small_node_size); +adjust_ptr(r)= copy_node_list(adjust_ptr(p)); +}break; +default:confusion(/*1404:*/ +#line 25108 "tex.w" +279 +/*:1404*/ +#line 4090 "tex.w" +); + +} + +/*:206*/ +#line 4049 "tex.w" +; +while(words> 0) +{decr(words);mem[r+words]= mem[p+words]; +} + +/*:205*/ +#line 4038 "tex.w" +; +link(q)= r;q= r;p= link(p); +} +link(q)= null;q= link(h);free_avail(h); +return q; +} + +/*:204*//*211:*/ +#line 4304 "tex.w" +void print_mode(int m) +{if(m> 0) +switch(m/(max_command+1)){ +case 0:print_str("vertical");break; +case 1:print_str("horizontal");break; +case 2:print_str("display math"); +} +else if(m==0)print_str("no"); +else switch((-m)/(max_command+1)){ +case 0:print_str("internal vertical");break; +case 1:print_str("restricted horizontal");break; +case 2:print_str("math"); +} +print_str(" mode"); +} + +/*:211*//*216:*/ +#line 4418 "tex.w" +void push_nest(void) +{if(nest_ptr> max_nest_stack) +{max_nest_stack= nest_ptr; +if(nest_ptr==nest_size)overflow("semantic nest size",nest_size); + +} +nest[nest_ptr]= cur_list; +incr(nest_ptr);head= get_avail();tail= head;prev_graf= 0;mode_line= line; +} + +/*:216*//*217:*/ +#line 4433 "tex.w" +void pop_nest(void) +{free_avail(head);decr(nest_ptr);cur_list= nest[nest_ptr]; +} + +/*:217*//*218:*/ +#line 4439 "tex.w" +void print_totals(void); +void show_activities(void) +{int p; +int16_t m; +memory_word a; +pointer q,r; +int t; +nest[nest_ptr]= cur_list; +print_nl("");print_ln(); +for(p= nest_ptr;p>=0;p--) +{m= nest[p].mode_field;a= nest[p].aux_field; +print_nl("### ");print_mode(m); +print_str(" entered at line ");print_int(abs(nest[p].ml_field)); +if(m==hmode)if(nest[p].pg_field!=040600000) +{print_str(" (language");print_int(nest[p].pg_field%0200000); +print_str(":hyphenmin");print_int(nest[p].pg_field/020000000); +print_char(',');print_int((nest[p].pg_field/0200000)%0100); +print_char(')'); +} +if(nest[p].ml_field<0)print_str(" (\\output routine)"); +if(p==0) +{/*986:*/ +#line 19296 "tex.w" + +if(page_head!=page_tail) +{print_nl("### current page:"); +if(output_active)print_str(" (held over for next output)"); + +show_box(link(page_head)); +if(page_contents> empty) +{print_nl("total height ");print_totals(); + +print_nl(" goal height ");print_scaled(page_goal); + +r= link(page_ins_head); +while(r!=page_ins_head) +{print_ln();print_esc(/*1390:*/ +#line 25066 "tex.w" +265 +/*:1390*/ +#line 19309 "tex.w" +);t= qo(subtype(r)); +print_int(t);print_str(" adds "); +if(count(t)==1000)t= height(r); +else t= x_over_n(height(r),1000)*count(t); +print_scaled(t); +if(type(r)==split_up) +{q= page_head;t= 0; +do{q= link(q); +if((type(q)==ins_node)&&(subtype(q)==subtype(r)))incr(t); +}while(!(q==broken_ins(r))); +print_str(", #");print_int(t);print_str(" might split"); +} +r= link(r); +} +} +} + +/*:986*/ +#line 4460 "tex.w" +; +if(link(contrib_head)!=null) +print_nl("### recent contributions:"); +} +show_box(link(nest[p].head_field)); +/*219:*/ +#line 4469 "tex.w" + +switch(abs(m)/(max_command+1)){ +case 0:{print_nl("prevdepth "); +if(a.sc<=ignore_depth)print_str("ignored"); +else print_scaled(a.sc); +if(nest[p].pg_field!=0) +{print_str(", prevgraf "); +print_int(nest[p].pg_field);print_str(" line"); +if(nest[p].pg_field!=1)print_char('s'); +} +}break; +case 1:{print_nl("spacefactor ");print_int(a.hh.lh); +if(m> 0)if(a.hh.rh> 0) +{print_str(", current language ");print_int(a.hh.rh); +} +}break; +case 2:if(a.i!=null) +{print_str("this will be denominator of:");show_box(a.i); +} +} + +/*:219*/ +#line 4465 "tex.w" +; +} +} + +/*:218*//*237:*/ +#line 5091 "tex.w" +void print_param(int n) +{switch(n){ +case pretolerance_code:print_esc(/*1446:*/ +#line 25234 "tex.w" +321 +/*:1446*/ +#line 5093 "tex.w" +);break; +case tolerance_code:print_esc(/*1447:*/ +#line 25237 "tex.w" +322 +/*:1447*/ +#line 5094 "tex.w" +);break; +case line_penalty_code:print_esc(/*1448:*/ +#line 25240 "tex.w" +323 +/*:1448*/ +#line 5095 "tex.w" +);break; +case hyphen_penalty_code:print_esc(/*1449:*/ +#line 25243 "tex.w" +324 +/*:1449*/ +#line 5096 "tex.w" +);break; +case ex_hyphen_penalty_code:print_esc(/*1450:*/ +#line 25246 "tex.w" +325 +/*:1450*/ +#line 5097 "tex.w" +);break; +case club_penalty_code:print_esc(/*1451:*/ +#line 25249 "tex.w" +326 +/*:1451*/ +#line 5098 "tex.w" +);break; +case widow_penalty_code:print_esc(/*1452:*/ +#line 25252 "tex.w" +327 +/*:1452*/ +#line 5099 "tex.w" +);break; +case display_widow_penalty_code:print_esc(/*1453:*/ +#line 25255 "tex.w" +328 +/*:1453*/ +#line 5100 "tex.w" +);break; +case broken_penalty_code:print_esc(/*1454:*/ +#line 25258 "tex.w" +329 +/*:1454*/ +#line 5101 "tex.w" +);break; +case bin_op_penalty_code:print_esc(/*1455:*/ +#line 25261 "tex.w" +330 +/*:1455*/ +#line 5102 "tex.w" +);break; +case rel_penalty_code:print_esc(/*1456:*/ +#line 25264 "tex.w" +331 +/*:1456*/ +#line 5103 "tex.w" +);break; +case pre_display_penalty_code:print_esc(/*1457:*/ +#line 25267 "tex.w" +332 +/*:1457*/ +#line 5104 "tex.w" +);break; +case post_display_penalty_code:print_esc(/*1458:*/ +#line 25270 "tex.w" +333 +/*:1458*/ +#line 5105 "tex.w" +);break; +case inter_line_penalty_code:print_esc(/*1459:*/ +#line 25273 "tex.w" +334 +/*:1459*/ +#line 5106 "tex.w" +);break; +case double_hyphen_demerits_code:print_esc(/*1460:*/ +#line 25276 "tex.w" +335 +/*:1460*/ +#line 5107 "tex.w" +);break; +case final_hyphen_demerits_code:print_esc(/*1461:*/ +#line 25279 "tex.w" +336 +/*:1461*/ +#line 5108 "tex.w" +);break; +case adj_demerits_code:print_esc(/*1462:*/ +#line 25282 "tex.w" +337 +/*:1462*/ +#line 5109 "tex.w" +);break; +case mag_code:print_esc(/*1463:*/ +#line 25285 "tex.w" +338 +/*:1463*/ +#line 5110 "tex.w" +);break; +case delimiter_factor_code:print_esc(/*1464:*/ +#line 25288 "tex.w" +339 +/*:1464*/ +#line 5111 "tex.w" +);break; +case looseness_code:print_esc(/*1465:*/ +#line 25291 "tex.w" +340 +/*:1465*/ +#line 5112 "tex.w" +);break; +case time_code:print_esc(/*1466:*/ +#line 25294 "tex.w" +341 +/*:1466*/ +#line 5113 "tex.w" +);break; +case day_code:print_esc(/*1467:*/ +#line 25297 "tex.w" +342 +/*:1467*/ +#line 5114 "tex.w" +);break; +case month_code:print_esc(/*1468:*/ +#line 25300 "tex.w" +343 +/*:1468*/ +#line 5115 "tex.w" +);break; +case year_code:print_esc(/*1469:*/ +#line 25303 "tex.w" +344 +/*:1469*/ +#line 5116 "tex.w" +);break; +case show_box_breadth_code:print_esc(/*1470:*/ +#line 25306 "tex.w" +345 +/*:1470*/ +#line 5117 "tex.w" +);break; +case show_box_depth_code:print_esc(/*1471:*/ +#line 25309 "tex.w" +346 +/*:1471*/ +#line 5118 "tex.w" +);break; +case hbadness_code:print_esc(/*1472:*/ +#line 25312 "tex.w" +347 +/*:1472*/ +#line 5119 "tex.w" +);break; +case vbadness_code:print_esc(/*1473:*/ +#line 25315 "tex.w" +348 +/*:1473*/ +#line 5120 "tex.w" +);break; +case pausing_code:print_esc(/*1474:*/ +#line 25318 "tex.w" +349 +/*:1474*/ +#line 5121 "tex.w" +);break; +case tracing_online_code:print_esc(/*1475:*/ +#line 25321 "tex.w" +350 +/*:1475*/ +#line 5122 "tex.w" +);break; +case tracing_macros_code:print_esc(/*1476:*/ +#line 25324 "tex.w" +351 +/*:1476*/ +#line 5123 "tex.w" +);break; +case tracing_stats_code:print_esc(/*1477:*/ +#line 25327 "tex.w" +352 +/*:1477*/ +#line 5124 "tex.w" +);break; +case tracing_paragraphs_code:print_esc(/*1478:*/ +#line 25330 "tex.w" +353 +/*:1478*/ +#line 5125 "tex.w" +);break; +case tracing_pages_code:print_esc(/*1479:*/ +#line 25333 "tex.w" +354 +/*:1479*/ +#line 5126 "tex.w" +);break; +case tracing_output_code:print_esc(/*1480:*/ +#line 25336 "tex.w" +355 +/*:1480*/ +#line 5127 "tex.w" +);break; +case tracing_lost_chars_code:print_esc(/*1481:*/ +#line 25339 "tex.w" +356 +/*:1481*/ +#line 5128 "tex.w" +);break; +case tracing_commands_code:print_esc(/*1482:*/ +#line 25342 "tex.w" +357 +/*:1482*/ +#line 5129 "tex.w" +);break; +case tracing_restores_code:print_esc(/*1483:*/ +#line 25345 "tex.w" +358 +/*:1483*/ +#line 5130 "tex.w" +);break; +case uc_hyph_code:print_esc(/*1484:*/ +#line 25348 "tex.w" +359 +/*:1484*/ +#line 5131 "tex.w" +);break; +case output_penalty_code:print_esc(/*1485:*/ +#line 25351 "tex.w" +360 +/*:1485*/ +#line 5132 "tex.w" +);break; +case max_dead_cycles_code:print_esc(/*1486:*/ +#line 25354 "tex.w" +361 +/*:1486*/ +#line 5133 "tex.w" +);break; +case hang_after_code:print_esc(/*1487:*/ +#line 25357 "tex.w" +362 +/*:1487*/ +#line 5134 "tex.w" +);break; +case floating_penalty_code:print_esc(/*1488:*/ +#line 25360 "tex.w" +363 +/*:1488*/ +#line 5135 "tex.w" +);break; +case global_defs_code:print_esc(/*1489:*/ +#line 25363 "tex.w" +364 +/*:1489*/ +#line 5136 "tex.w" +);break; +case cur_fam_code:print_esc(/*1490:*/ +#line 25366 "tex.w" +365 +/*:1490*/ +#line 5137 "tex.w" +);break; +case escape_char_code:print_esc(/*1491:*/ +#line 25369 "tex.w" +366 +/*:1491*/ +#line 5138 "tex.w" +);break; +case default_hyphen_char_code:print_esc(/*1492:*/ +#line 25372 "tex.w" +367 +/*:1492*/ +#line 5139 "tex.w" +);break; +case default_skew_char_code:print_esc(/*1493:*/ +#line 25375 "tex.w" +368 +/*:1493*/ +#line 5140 "tex.w" +);break; +case end_line_char_code:print_esc(/*1494:*/ +#line 25378 "tex.w" +369 +/*:1494*/ +#line 5141 "tex.w" +);break; +case new_line_char_code:print_esc(/*1495:*/ +#line 25381 "tex.w" +370 +/*:1495*/ +#line 5142 "tex.w" +);break; +case language_code:print_esc(/*1496:*/ +#line 25384 "tex.w" +371 +/*:1496*/ +#line 5143 "tex.w" +);break; +case left_hyphen_min_code:print_esc(/*1497:*/ +#line 25387 "tex.w" +372 +/*:1497*/ +#line 5144 "tex.w" +);break; +case right_hyphen_min_code:print_esc(/*1498:*/ +#line 25390 "tex.w" +373 +/*:1498*/ +#line 5145 "tex.w" +);break; +case holding_inserts_code:print_esc(/*1499:*/ +#line 25393 "tex.w" +374 +/*:1499*/ +#line 5146 "tex.w" +);break; +case error_context_lines_code:print_esc(/*1500:*/ +#line 25396 "tex.w" +375 +/*:1500*/ +#line 5147 "tex.w" +);break; +default:print_str("[unknown integer parameter!]"); +} +} + +/*:237*//*241:*/ +#line 5293 "tex.w" +void fix_date_and_time(void) +{time= 12*60; +day= 4; +month= 7; +year= 1776; +} + +/*:241*//*245:*/ +#line 5318 "tex.w" +void begin_diagnostic(void) +{old_setting= selector; +if((tracing_online<=0)&&(selector==term_and_log)) +{decr(selector); +if(history==spotless)history= warning_issued; +} +} + +void end_diagnostic(bool blank_line) + +{print_nl(""); +if(blank_line)print_ln(); +selector= old_setting; +} + +/*:245*//*247:*/ +#line 5392 "tex.w" +void print_length_param(int n) +{switch(n){ +case par_indent_code:print_esc(/*1503:*/ +#line 25405 "tex.w" +378 +/*:1503*/ +#line 5394 "tex.w" +);break; +case math_surround_code:print_esc(/*1504:*/ +#line 25408 "tex.w" +379 +/*:1504*/ +#line 5395 "tex.w" +);break; +case line_skip_limit_code:print_esc(/*1505:*/ +#line 25411 "tex.w" +380 +/*:1505*/ +#line 5396 "tex.w" +);break; +case hsize_code:print_esc(/*1506:*/ +#line 25414 "tex.w" +381 +/*:1506*/ +#line 5397 "tex.w" +);break; +case vsize_code:print_esc(/*1507:*/ +#line 25417 "tex.w" +382 +/*:1507*/ +#line 5398 "tex.w" +);break; +case max_depth_code:print_esc(/*1508:*/ +#line 25420 "tex.w" +383 +/*:1508*/ +#line 5399 "tex.w" +);break; +case split_max_depth_code:print_esc(/*1509:*/ +#line 25423 "tex.w" +384 +/*:1509*/ +#line 5400 "tex.w" +);break; +case box_max_depth_code:print_esc(/*1510:*/ +#line 25426 "tex.w" +385 +/*:1510*/ +#line 5401 "tex.w" +);break; +case hfuzz_code:print_esc(/*1511:*/ +#line 25429 "tex.w" +386 +/*:1511*/ +#line 5402 "tex.w" +);break; +case vfuzz_code:print_esc(/*1512:*/ +#line 25432 "tex.w" +387 +/*:1512*/ +#line 5403 "tex.w" +);break; +case delimiter_shortfall_code:print_esc(/*1513:*/ +#line 25435 "tex.w" +388 +/*:1513*/ +#line 5404 "tex.w" +);break; +case null_delimiter_space_code:print_esc(/*1514:*/ +#line 25438 "tex.w" +389 +/*:1514*/ +#line 5405 "tex.w" +);break; +case script_space_code:print_esc(/*1515:*/ +#line 25441 "tex.w" +390 +/*:1515*/ +#line 5406 "tex.w" +);break; +case pre_display_size_code:print_esc(/*1516:*/ +#line 25444 "tex.w" +391 +/*:1516*/ +#line 5407 "tex.w" +);break; +case display_width_code:print_esc(/*1517:*/ +#line 25447 "tex.w" +392 +/*:1517*/ +#line 5408 "tex.w" +);break; +case display_indent_code:print_esc(/*1518:*/ +#line 25450 "tex.w" +393 +/*:1518*/ +#line 5409 "tex.w" +);break; +case overfull_rule_code:print_esc(/*1519:*/ +#line 25453 "tex.w" +394 +/*:1519*/ +#line 5410 "tex.w" +);break; +case hang_indent_code:print_esc(/*1520:*/ +#line 25456 "tex.w" +395 +/*:1520*/ +#line 5411 "tex.w" +);break; +case h_offset_code:print_esc(/*1521:*/ +#line 25459 "tex.w" +396 +/*:1521*/ +#line 5412 "tex.w" +);break; +case v_offset_code:print_esc(/*1522:*/ +#line 25462 "tex.w" +397 +/*:1522*/ +#line 5413 "tex.w" +);break; +case emergency_stretch_code:print_esc(/*1523:*/ +#line 25465 "tex.w" +398 +/*:1523*/ +#line 5414 "tex.w" +);break; +default:print_str("[unknown dimen parameter!]"); +} +} + +/*:247*//*252:*/ +#line 5484 "tex.w" +/*298:*/ +#line 6463 "tex.w" + +void print_cmd_chr(quarterword cmd,halfword chr_code) +{switch(cmd){ +case left_brace:chr_cmd("begin-group character ")break; +case right_brace:chr_cmd("end-group character ")break; +case math_shift:chr_cmd("math shift character ")break; +case mac_param:chr_cmd("macro parameter character ")break; +case sup_mark:chr_cmd("superscript character ")break; +case sub_mark:chr_cmd("subscript character ")break; +case endv:print_str("end of alignment template");break; +case spacer:chr_cmd("blank space ")break; +case letter:chr_cmd("the letter ")break; +case other_char:chr_cmd("the character ")break; +/*227:*/ +#line 4740 "tex.w" + +case assign_glue:case assign_mu_glue:if(chr_code=toks_base) +{print_esc(/*1435:*/ +#line 25201 "tex.w" +310 +/*:1435*/ +#line 4843 "tex.w" +);print_int(chr_code-toks_base); +} +else switch(chr_code){ +case output_routine_loc:print_esc(/*1426:*/ +#line 25174 "tex.w" +301 +/*:1426*/ +#line 4846 "tex.w" +);break; +case every_par_loc:print_esc(/*1427:*/ +#line 25177 "tex.w" +302 +/*:1427*/ +#line 4847 "tex.w" +);break; +case every_math_loc:print_esc(/*1428:*/ +#line 25180 "tex.w" +303 +/*:1428*/ +#line 4848 "tex.w" +);break; +case every_display_loc:print_esc(/*1429:*/ +#line 25183 "tex.w" +304 +/*:1429*/ +#line 4849 "tex.w" +);break; +case every_hbox_loc:print_esc(/*1430:*/ +#line 25186 "tex.w" +305 +/*:1430*/ +#line 4850 "tex.w" +);break; +case every_vbox_loc:print_esc(/*1431:*/ +#line 25189 "tex.w" +306 +/*:1431*/ +#line 4851 "tex.w" +);break; +case every_job_loc:print_esc(/*1432:*/ +#line 25192 "tex.w" +307 +/*:1432*/ +#line 4852 "tex.w" +);break; +case every_cr_loc:print_esc(/*1433:*/ +#line 25195 "tex.w" +308 +/*:1433*/ +#line 4853 "tex.w" +);break; +default:print_esc(/*1434:*/ +#line 25198 "tex.w" +309 +/*:1434*/ +#line 4854 "tex.w" +); +}break; + +/*:231*//*239:*/ +#line 5269 "tex.w" + +case assign_int:if(chr_code=hash_prime)h= h-hash_prime; +} + +/*:261*/ +#line 5583 "tex.w" +; +p= h+hash_base; +loop{if(text(p)> 0)if(length(text(p))==l) +if(str_eq_buf(text(p),j))goto found; +if(next(p)==0) +{if(no_new_control_sequence) +p= undefined_control_sequence; +else/*260:*/ +#line 5598 "tex.w" + +{if(text(p)> 0) +{do{if(hash_is_full)overflow("hash size",hash_size); + +decr(hash_used); +}while(!(text(hash_used)==0)); +next(p)= hash_used;p= hash_used; +} +str_room(l);d= cur_length; +while(pool_ptr> str_start[str_ptr]) +{decr(pool_ptr);str_pool[pool_ptr+l]= str_pool[pool_ptr]; +} +for(k= j;k<=j+l-1;k++)append_char(buffer[k]); +text(p)= make_string();pool_ptr= pool_ptr+d; +#ifdef STAT +incr(cs_count); +#endif + +} + +/*:260*/ +#line 5590 "tex.w" +; +goto found; +} +p= next(p); +} +found:return p; +} + +/*:259*//*264:*/ +#line 5680 "tex.w" + +#ifdef INIT +void primitive(str_number s,quarterword c,halfword o) +{pool_pointer k; +int j; +small_number l; +if(s<256)cur_val= s+single_base; +else{k= str_start[s];l= str_start[s+1]-k; + +for(j= 0;j<=l-1;j++)buffer[j]= so(str_pool[k+j]); +cur_val= id_lookup(0,l); +flush_string;text(cur_val)= s; +} +eq_level(cur_val)= level_one;eq_type(cur_val)= c;equiv(cur_val)= o; +} +#endif + +/*:264*//*274:*/ +#line 5987 "tex.w" +void new_save_level(group_code c) +{check_full_save_stack; +save_type(save_ptr)= level_boundary;save_level(save_ptr)= cur_group; +save_index(save_ptr)= cur_boundary; +if(cur_level==max_quarterword)overflow("grouping levels", + +max_quarterword-min_quarterword); + +cur_boundary= save_ptr;incr(cur_level);incr(save_ptr);cur_group= c; +} + +/*:274*//*275:*/ +#line 6004 "tex.w" +void eq_destroy(memory_word w) +{pointer q; +switch(eq_type_field(w)){ +case call:case long_call:case outer_call:case long_outer_call:delete_token_ref(equiv_field(w));break; +case glue_ref:delete_glue_ref(equiv_field(w));break; +case shape_ref:{q= equiv_field(w); +if(q!=null)free_node(q,info(q)+info(q)+1); +}break; +case box_ref:flush_node_list(equiv_field(w));break; +default:do_nothing; +} +} + +/*:275*//*276:*/ +#line 6020 "tex.w" +void eq_save(pointer p,quarterword l) +{check_full_save_stack; +if(l==level_zero)save_type(save_ptr)= restore_zero; +else{save_stack[save_ptr]= eqtb[p];incr(save_ptr); +save_type(save_ptr)= restore_old_value; +} +save_level(save_ptr)= l;save_index(save_ptr)= p;incr(save_ptr); +} + +/*:276*//*277:*/ +#line 6037 "tex.w" +void eq_define(pointer p,quarterword t,halfword e) + +{if(eq_level(p)==cur_level)eq_destroy(eqtb[p]); +else if(cur_level> level_one)eq_save(p,eq_level(p)); +eq_level(p)= cur_level;eq_type(p)= t;equiv(p)= e; +} + +/*:277*//*278:*/ +#line 6048 "tex.w" +void eq_word_define(pointer p,int w) +{if(xeq_level[p]!=cur_level) +{eq_save(p,xeq_level[p]);xeq_level[p]= cur_level; +} +eqtb[p].i= w; +} + +/*:278*//*279:*/ +#line 6060 "tex.w" +void geq_define(pointer p,quarterword t,halfword e) + +{eq_destroy(eqtb[p]); +eq_level(p)= level_one;eq_type(p)= t;equiv(p)= e; +} + +void geq_word_define(pointer p,int w) +{eqtb[p].i= w;xeq_level[p]= level_one; +} + +/*:279*//*280:*/ +#line 6072 "tex.w" +void save_for_after(halfword t) +{if(cur_level> level_one) +{check_full_save_stack; +save_type(save_ptr)= insert_token;save_level(save_ptr)= level_zero; +save_index(save_ptr)= t;incr(save_ptr); +} +} + +/*:280*//*281:*/ +#line 6084 "tex.w" +/*284:*/ +#line 6155 "tex.w" + +#ifdef STAT +void restore_trace(pointer p,str_number s) + +{begin_diagnostic();print_char('{');print(s);print_char(' '); +show_eqtb(p);print_char('}'); +end_diagnostic(false); +} +#endif + +/*:284*/ +#line 6084 "tex.w" + +void back_input(void); +void unsave(void) +{ +pointer p; +quarterword l; +halfword t; +if(cur_level> level_one) +{decr(cur_level); +/*282:*/ +#line 6099 "tex.w" + +loop{decr(save_ptr); +if(save_type(save_ptr)==level_boundary)goto done; +p= save_index(save_ptr); +if(save_type(save_ptr)==insert_token) +/*326:*/ +#line 7097 "tex.w" + +{t= cur_tok;cur_tok= p;back_input();cur_tok= t; +} + +/*:326*/ +#line 6104 "tex.w" + +else{if(save_type(save_ptr)==restore_old_value) +{l= save_level(save_ptr);decr(save_ptr); +} +else save_stack[save_ptr]= eqtb[undefined_control_sequence]; +/*283:*/ +#line 6121 "tex.w" + +if(p 0)restore_trace(p,/*1564:*/ +#line 25588 "tex.w" +439 +/*:1564*/ +#line 6127 "tex.w" +); +#endif + +} +else{eq_destroy(eqtb[p]); +eqtb[p]= save_stack[save_ptr]; + +#ifdef STAT +if(tracing_restores> 0)restore_trace(p,/*1565:*/ +#line 25591 "tex.w" +440 +/*:1565*/ +#line 6135 "tex.w" +); +#endif + +} +else if(xeq_level[p]!=level_one) +{eqtb[p]= save_stack[save_ptr];xeq_level[p]= l; + +#ifdef STAT +if(tracing_restores> 0)restore_trace(p,/*1565:*/ +#line 25591 "tex.w" +440 +/*:1565*/ +#line 6143 "tex.w" +); +#endif + +} +else{ + +#ifdef STAT +if(tracing_restores> 0)restore_trace(p,/*1564:*/ +#line 25588 "tex.w" +439 +/*:1564*/ +#line 6150 "tex.w" +); +#endif + +} + +/*:283*/ +#line 6110 "tex.w" +; +} +} +done:cur_group= save_level(save_ptr);cur_boundary= save_index(save_ptr) + +/*:282*/ +#line 6093 "tex.w" +; +} +else confusion(/*1563:*/ +#line 25585 "tex.w" +438 +/*:1563*/ +#line 6095 "tex.w" +); + +} + +/*:281*//*288:*/ +#line 6194 "tex.w" +void prepare_mag(void) +{if((mag_set> 0)&&(mag!=mag_set)) +{print_err("Incompatible magnification (");print_int(mag); + +print_str(");");print_nl(" the previous value will be retained"); +help2("I can handle only one magnification ratio per job. So I've") +("reverted to the magnification you used earlier on this run."); +int_error(mag_set); +geq_word_define(int_base+mag_code,mag_set); +} +if((mag<=0)||(mag> 32768)) +{print_err("Illegal magnification has been changed to 1000"); + +help1("The magnification ratio must be between 1 and 32768."); +int_error(mag);geq_word_define(int_base+mag_code,1000); +} +mag_set= mag; +} + +/*:288*//*295:*/ +#line 6378 "tex.w" +void token_show(pointer p) +{if(p!=null)show_token_list(link(p),null,10000000); +} + +/*:295*//*296:*/ +#line 6385 "tex.w" +void print_meaning(void) +{print_cmd_chr(cur_cmd,cur_chr); +if(cur_cmd>=call) +{print_char(':');print_ln();token_show(cur_chr); +} +else if(cur_cmd==top_bot_mark) +{print_char(':');print_ln(); +token_show(cur_mark[cur_chr]); +} +} + +/*:296*//*299:*/ +#line 6483 "tex.w" +void show_cur_cmd_chr(void) +{begin_diagnostic();print_nl("{"); +if(mode!=shown_mode) +{print_mode(mode);print_str(": ");shown_mode= mode; +} +print_cmd_chr(cur_cmd,cur_chr);print_char('}'); +end_diagnostic(false); +} + +/*:299*//*311:*/ +#line 6827 "tex.w" +void show_context(void) +{ +uint8_t old_setting; +int nn; +bool bottom_line; +/*315:*/ +#line 6939 "tex.w" + +int i; +uint16_t j; +uint8_t l; +int m; +uint8_t n; +int p; +int q; + +/*:315*/ +#line 6832 "tex.w" + +base_ptr= input_ptr;input_stack[base_ptr]= cur_input; + +nn= -1;bottom_line= false; +loop{cur_input= input_stack[base_ptr]; +if((state!=token_list)) +if((name> 17)||(base_ptr==0))bottom_line= true; +if((base_ptr==input_ptr)||bottom_line||(nn");else print_nl(" "); +else{print_nl("'); +} +else{print_nl("l.");print_int(line); +} +print_char(' ') + +/*:313*/ +#line 6857 "tex.w" +; +/*318:*/ +#line 6985 "tex.w" + +begin_pseudoprint; +if(buffer[limit]==end_line_char)j= limit; +else j= limit+1; +if(j> 0)for(i= start;i<=j-1;i++) +{if(i==loc)set_trick_count; +print(buffer[i]); +} + +/*:318*/ +#line 6858 "tex.w" +; +} +else{/*314:*/ +#line 6887 "tex.w" + +switch(token_type){ +case parameter:print_nl(" ");break; +case u_template:case v_template:print_nl("