/*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("