/*1:*/ #line 169 "weave.web" #line 21 "theweave.ch" /*5:*/ #line 32 "common.h" #include /*:5*//*37:*/ #line 652 "weave.web" #include"ctype.h" /*:37*/ #line 21 "theweave.ch" #define WEAVE 1 #line 171 "weave.web" /*4:*/ #line 26 "common.h" typedef short boolean; typedef char unsigned eight_bits; extern boolean program; extern int phase; /*:4*//*6:*/ #line 41 "common.h" typedef char ASCII; typedef char outer_char; extern ASCII xord[]; extern outer_char xchr[]; ASCII mod_text[400+1]; ASCII *mod_text_end= mod_text+400; ASCII *id_first; ASCII *id_loc; /*:6*//*7:*/ #line 54 "common.h" extern ASCII buffer[]; extern ASCII *buffer_end; extern ASCII *loc; extern ASCII *limit; /*:7*//*8:*/ #line 72 "common.h" typedef struct name_info{ ASCII *byte_start; struct name_info *link; union{ struct name_info *Rlink; eight_bits Ilk; }dummy; ASCII *equiv_or_xref; }name_info; typedef name_info *name_pointer; typedef name_pointer *hash_pointer; extern ASCII byte_mem[]; extern ASCII *byte_mem_end; extern name_info name_dir[]; extern name_pointer name_dir_end; extern name_pointer name_ptr; extern ASCII *byte_ptr; extern name_pointer hash[]; extern hash_pointer hash_end; extern hash_pointer h; extern name_pointer id_lookup(); extern name_pointer mod_lookup(); extern name_pointer prefix_lookup(); /*:8*//*9:*/ #line 117 "common.h" extern history; /*:9*//*10:*/ #line 129 "common.h" extern include_depth; extern FILE *file[]; extern FILE *change_file; extern char C_file_name[]; extern char tex_file_name[]; extern char file_name[][60]; extern char change_file_name[]; extern line[]; extern change_line; extern boolean input_has_ended; extern boolean changing; /*:10*//*11:*/ #line 144 "common.h" typedef unsigned short sixteen_bits; extern sixteen_bits module_count; extern boolean changed_module[]; extern boolean print_where; /*:11*//*12:*/ #line 151 "common.h" extern int argc; extern char * *argv; extern no_xref; /*:12*//*13:*/ #line 164 "common.h" FILE *C_file; FILE *tex_file; #line 217 "weave.web" /*:13*/ #line 171 "weave.web" /*18:*/ #line 299 "weave.web" typedef struct xref_info{ sixteen_bits num; struct xref_info *xlink; }xref_info; typedef xref_info *xref_pointer; /*:18*//*24:*/ #line 411 "weave.web" typedef sixteen_bits token; typedef token *token_pointer; typedef token_pointer *text_pointer; /*:24*//*116:*/ #line 1581 "weave.web" typedef struct{ eight_bits cat; eight_bits mathness; union{ text_pointer Trans; /*221:*/ #line 3298 "weave.web" name_pointer Head; /*:221*/ #line 1587 "weave.web" }trans_plus; }scrap; typedef scrap *scrap_pointer; /*:116*//*171:*/ #line 2428 "weave.web" typedef int mode; typedef struct{ token_pointer end_field; token_pointer tok_field; boolean mode_field; }output_state; typedef output_state *stack_pointer; /*:171*/ #line 172 "weave.web" /*17:*/ #line 274 "weave.web" boolean change_exists; /*:17*//*19:*/ #line 306 "weave.web" xref_info xmem[20000]; xref_pointer xmem_end= xmem+20000-1; xref_pointer xref_ptr; sixteen_bits xref_switch,mod_xref_switch; /*:19*//*25:*/ #line 421 "weave.web" token tok_mem[20000]; token_pointer tok_mem_end= tok_mem+20000-1; token_pointer tok_start[4000]; token_pointer tok_ptr; text_pointer text_ptr; text_pointer tok_start_end= tok_start+4000-1; #ifdef STAT token_pointer max_tok_ptr; text_pointer max_text_ptr; #endif STAT /*:25*//*31:*/ #line 529 "weave.web" eight_bits ccode[128]; /*:31*//*36:*/ #line 648 "weave.web" name_pointer cur_module; int math_flag; /*:36*//*53:*/ #line 853 "weave.web" ASCII cur_module_char; /*:53*//*59:*/ #line 937 "weave.web" eight_bits next_control; /*:59*//*65:*/ #line 1050 "weave.web" name_pointer lhs,rhs; /*:65*//*69:*/ #line 1099 "weave.web" xref_pointer cur_xref; /*:69*//*72:*/ #line 1146 "weave.web" ASCII out_buf[80+1]; ASCII *out_ptr; ASCII *out_buf_end= out_buf+80; int out_line; /*:72*//*83:*/ #line 1338 "weave.web" eight_bits next_control; /*:83*//*115:*/ #line 1157 "grammar.web" char the_at_sign= 64; #line 1548 "weave.web" /*:115*//*117:*/ #line 1601 "weave.web" scrap scrap_info[2000]; scrap_pointer scrap_info_end= scrap_info+2000-1; scrap_pointer pp; scrap_pointer scrap_base; scrap_pointer scrap_ptr; scrap_pointer lo_ptr; scrap_pointer hi_ptr; #ifdef STAT scrap_pointer max_scr_ptr; #endif STAT /*:117*//*121:*/ #line 1742 "weave.web" int init_mathness,last_mathness; /*:121*//*134:*/ #line 2018 "weave.web" #ifdef DEBUG int tracing; #endif DEBUG /*:134*//*165:*/ #line 362 "scraps.web" char C_file_extension[]= "m"; /*:165*//*172:*/ #line 2441 "weave.web" output_state cur_state; output_state stack[400 #line 215 "weave.web" #line 1 "common.h" ]; stack_pointer stack_ptr; stack_pointer stack_end= stack+400 #line 215 "weave.web" #line 1 "common.h" -1; #ifdef STAT stack_pointer max_stack_ptr; #endif STAT /*:172*//*176:*/ #line 2493 "weave.web" name_pointer cur_name; /*:176*//*192:*/ #line 2823 "weave.web" int save_line; ASCII *save_place; boolean format_visible; boolean doing_format= 0; /*:192*//*204:*/ #line 3040 "weave.web" name_pointer this_module; /*:204*//*209:*/ #line 3116 "weave.web" xref_pointer next_xref,this_xref,first_xref,mid_xref; /*:209*//*214:*/ #line 3207 "weave.web" extern int no_xref; /*:214*//*216:*/ #line 3238 "weave.web" sixteen_bits k_module; /*:216*//*218:*/ #line 3264 "weave.web" name_pointer bucket[128]; name_pointer next_name; hash_pointer h; name_pointer blink[4000]; /*:218*//*222:*/ #line 3308 "weave.web" eight_bits cur_depth; ASCII *cur_byte; sixteen_bits cur_val; #ifdef STAT scrap_pointer max_sort_ptr; #endif STAT /*:222*//*224:*/ #line 3325 "weave.web" ASCII collate[102]; /*:224*//*234:*/ #line 3487 "weave.web" boolean do_file; /*:234*/ #line 173 "weave.web" main(ac,av) char * *av; { argc= ac;argv= av; program= 1; common_init(); /*20:*/ #line 316 "weave.web" name_dir->equiv_or_xref= (ASCII *)xmem; xref_ptr= xmem; xref_switch= 0; mod_xref_switch= 0; xmem->num= 0; /*:20*//*26:*/ #line 433 "weave.web" tok_ptr= tok_mem+1;text_ptr= tok_start+1;tok_start[0]= tok_mem+1; tok_start[1]= tok_mem+1; #ifdef STAT max_tok_ptr= tok_mem+1;max_text_ptr= tok_start+1; #endif STAT /*:26*//*32:*/ #line 536 "weave.web" {int c;for(c= 0;c<=127;c++)ccode[c]= 0;} ccode[' ']= ccode[011]= ccode['*']= 255; ccode['-']= 244; ccode['#']= 245; ccode['=']= 2; ccode['d']= ccode['D']= 252; ccode['f']= ccode['F']= 251; ccode['s']= ccode['S']= 251; ccode['c']= ccode['C']= 253; ccode['u']= ccode['U']= 253; ccode['t']= ccode['T']= 238; ccode['&']= 240; ccode['<']= ccode['(']= 254; ccode['!']= 126;ccode['^']= (200+1); ccode['$']= 125; ccode[':']= (200+2); ccode['.']= (200+3); ccode[',']= 241; ccode['|']= 242; ccode['/']= 243; ccode['+']= 246; ccode[';']= 247; ccode['`']= 239; #line 78 "theweave.ch" ccode['\'']= 12; ccode['"']= 13; ccode['\%']= 9; #line 562 "weave.web" /*33:*/ #line 574 "weave.web" #ifdef DEBUG ccode['0']= ccode['1']= ccode['2']= 249; #endif DEBUG /*:33*/ #line 562 "weave.web" ccode['@']= ccode[64]; ccode[64]= 64; /*:32*//*54:*/ #line 861 "weave.web" mod_text[0]= ' '; /*:54*//*75:*/ #line 1205 "weave.web" out_ptr= out_buf+1;out_line= 1; /*164:*/ #line 360 "scraps.web" *out_ptr= 'x';fprintf(tex_file,"\\input mweb.te"); /*:164*/ #line 1207 "weave.web" /*:75*//*77:*/ #line 1237 "weave.web" out_buf[0]= '\\'; /*:77*//*118:*/ #line 1613 "weave.web" scrap_base= scrap_info+1; #ifdef STAT max_scr_ptr= #endif STAT scrap_ptr= scrap_info; /*:118*//*173:*/ #line 2450 "weave.web" #ifdef STAT max_stack_ptr= stack; #endif STAT /*:173*//*223:*/ #line 3316 "weave.web" #ifdef STAT max_sort_ptr= scrap_info; #endif STAT /*:223*//*225:*/ #line 3331 "weave.web" collate[0]= 0;strcpy(collate+1," \1\2\3\4\5\6\7\10\11\12\13\14\15\16\17\ \20\21\22\23\24\25\26\27\30\31\32\33\34\35\36\37\ !\42#$%&'()*+,-./:;<=>?@[\\]^`{|}~_\ abcdefghijklmnopqrstuvwxyz0123456789"); /*:225*/ #line 181 "weave.web" ; printf("This is Matlab WEAVE (generated at 12:51 PM on January 27, 2000)\n"); /*16:*/ #line 262 "weave.web" id_lookup("TeX",NULL,4); /*:16*//*163:*/ #line 336 "scraps.web" id_lookup("function",NULL,65); id_lookup("end",NULL,69); id_lookup("switch",NULL,64); id_lookup("global",NULL,75); id_lookup("_fquotel",NULL,67); id_lookup("else",NULL,73); id_lookup("otherwise",NULL,73); id_lookup("catch",NULL,73); id_lookup("break",NULL,79); id_lookup("for",NULL,68); id_lookup("clear",NULL,77); id_lookup("_fquoter",NULL,72); id_lookup("elseif",NULL,76); id_lookup("_transposed",NULL,66); id_lookup("try",NULL,78); id_lookup("case",NULL,76); id_lookup("return",NULL,79); id_lookup("pi",NULL,74); id_lookup("inf",NULL,70); id_lookup("while",NULL,71); id_lookup("if",NULL,71); /*:163*/ #line 183 "weave.web" ; phase_one(); phase_two(); phase_three(); #ifdef STAT /*236:*/ #line 3496 "weave.web" printf( "\nMemory usage statistics: %d of %d names, %d of %d cross-references,\n", name_ptr-name_dir,name_dir_end-name_dir, xref_ptr-xmem,xmem_end-xmem); printf("\t %d of %d bytes;",byte_ptr-byte_mem,byte_mem_end-byte_mem); printf("\nParsing required %d of %d(%d) scraps, %d of %d(%d) texts,\n", max_scr_ptr-scrap_info,2000,2000-50, max_text_ptr-tok_start,4000,4000-50 ); printf("\t %d of %d(%d) tokens, %d of %d levels;\n", max_tok_ptr-tok_mem,20000,20000-50, max_stack_ptr-stack,stack_end-stack ); printf("\nSorting required %d levels\n",max_sort_ptr-scrap_info); /*:236*/ #line 188 "weave.web" ; #endif STAT wrap_up(); } /*:1*//*21:*/ #line 335 "weave.web" new_xref(p) name_pointer p; { xref_pointer q; sixteen_bits m,n; if(no_xref)return; if(((p->dummy.Ilk>3)||((p+1)->byte_start-(p)->byte_start)==1)&&xref_switch==0)return; m= module_count+xref_switch;xref_switch= 0;q= (xref_pointer)p->equiv_or_xref; if(q!=xmem){ n= q->num; if(n==m||n==m+10240)return; else if(m==n+10240){ q->num= m;return; } } if(xref_ptr==xmem_end)stat_overflow("cross-reference");else(++xref_ptr)->num= m;;xref_ptr->xlink= q;p->equiv_or_xref= (ASCII *)xref_ptr; } /*:21*//*22:*/ #line 367 "weave.web" new_mod_xref(p) name_pointer p; { xref_pointer q,r; q= (xref_pointer)p->equiv_or_xref; r= xmem; if(q>xmem){ if(mod_xref_switch==0)while(q->num>=10240){ r= q; q= q->xlink; } else if(q->num>=10240){ /*23:*/ #line 393 "weave.web" { if((mod_xref_switch==10240&&q->num>=2 *10240)|| (mod_xref_switch==2 *10240&&q->num<2 *10240)){ printf("\n! You can't use <");fflush(stdout),write(1,(p)->byte_start,(((p)+1)->byte_start-((p))->byte_start)); printf("> both as a file and as a named module");{if(history==0)history= 1;}; } } /*:23*/ #line 379 "weave.web" r= q; q= q->xlink; } } if(q->num==(module_count+mod_xref_switch))return; if(xref_ptr==xmem_end)stat_overflow("cross-reference");else(++xref_ptr)->num= module_count+mod_xref_switch;; xref_ptr->xlink= q;mod_xref_switch= 0; if(r==xmem)p->equiv_or_xref= (ASCII *)xref_ptr; else r->xlink= xref_ptr; } /*:22*//*27:*/ #line 441 "weave.web" names_match(p,first,l,t) name_pointer p; ASCII *first; int l; eight_bits t; { if(((p+1)->byte_start-(p)->byte_start)!=l)return 0; if(p->dummy.Ilk!=t&&!(t==0&&(p->dummy.Ilk>3)))return 0; return!strncmp(first,p->byte_start,l); } init_p(p,t) name_pointer p; eight_bits t; { p->dummy.Ilk= t;p->equiv_or_xref= (ASCII *)xmem; } init_node(p) name_pointer p; { p->equiv_or_xref= (ASCII *)xmem; } /*:27*//*34:*/ #line 584 "weave.web" skip_limbo(){ while(1){ if(loc>limit&&get_line()==0)return; *(limit+1)= 64; while( *loc!=64)loc++; if(loc++<=limit)if(ccode[ *loc++]==255)return; } } /*:34*//*35:*/ #line 598 "weave.web" unsigned skip_TeX() { while(1){ if(loc>limit&&get_line()==0)return(255); *(limit+1)= 64; while( *loc!=64&& *loc!=124)loc++; if( *loc++==124)return(248); if(loc<=limit)return(ccode[ *(loc++)]); } } /*:35*//*38:*/ #line 125 "theweave.ch" eight_bits previous_token,do_get_next(); name_pointer previous_scrap; eight_bits get_next(see_vertical) char see_vertical; { eight_bits c; c= do_get_next(see_vertical); if(!(c==' '||c=='\t'||c=='\n'||c=='\v'||c=='\r'||c=='\f'||c==193)){ previous_token= c; if(c==200){ previous_scrap= id_lookup(id_first,id_loc,0); } } return(c); } int fquote_level; eight_bits do_get_next(see_vertical) char see_vertical; { eight_bits c; while(1){ if(loc>limit){ if(get_line()==0)return(255); else return(10); } c= *(loc++); /*168:*/ #line 367 "scraps.web" {int len;len= strlen("%"); if(loc+len-1<=limit&&!strncmp(loc-1,"%",len)){ loc+= len-1; return(8 #line 498 "weave.web" ); } } /*:168*/ #line 156 "theweave.ch" if(see_vertical&&c==124){ if( *loc==124&&locbyte_start,"case",strlen("case")))) previous_token= '('; switch(previous_token){ case'(': case'[':case'{': case'+':case'-': case'*':case 197: case'^':case'\\': case'/':case 195: case':':case',': case'=':case 192: case'<':case 191: case'>':case 189: case 190:case'|': case';': /*46:*/ #line 335 "theweave.ch" { ASCII delim= c; id_first= mod_text+1; id_loc= mod_text; if(delim=='`'&& *(loc-2)==64){ *++id_loc= 64; *++id_loc= 64; } *++id_loc= '\''; if(delim=='`')delim= '\''; while(1){ if(loc>=limit)/*48:*/ #line 389 "theweave.ch" { if( *(limit-1)!='\\'){ err_print("! String didn't end");loc= limit;break; } if(get_line()==0){ err_print("! Input ended in middle of string");loc= buffer;break; } } /*:48*/ #line 348 "theweave.ch" if((c= *loc++)==delim)/*47:*/ #line 373 "theweave.ch" { if(++id_loc<=mod_text_end){ *id_loc= c; if( *loc==delim){ if(++id_loc<=mod_text_end) *id_loc= *loc++; continue; }else{ *id_loc= '\''; break; } } } /*:47*/ #line 349 "theweave.ch" if(c=='\\')/*49:*/ #line 403 "theweave.ch" { if(loc>=limit)continue; #if 0 else if(++id_loc<=mod_text_end){ *id_loc= '\\'; c= *loc++; } #endif } #line 816 "weave.web" /*:49*/ #line 350 "theweave.ch" if(++id_loc<=mod_text_end) *id_loc= c; } if(id_loc>=mod_text_end){ printf("\n! String too long: "); fflush(stdout),write(1,mod_text+1,25); printf("...");history= 2; } id_loc++; return(198); } /*:46*/ #line 314 "theweave.ch" case')':case']': case 199:case'.': case 198:case 200: #ifdef WEAVE case 8 #line 498 "weave.web" : return(15); #else return'\"'; #endif default: err_print("! Unknown left context for quote"); printf("\n character: %d = \'%c\'\n\n",previous_token, previous_token); return('\''); } } /*:45*/ #line 168 "theweave.ch" }else if(c=='\''){ if(fquote_level>0){ fquote_level--; return(5); }else /*45:*/ #line 296 "theweave.ch" { if((previous_token==200&&!strncmp((previous_scrap)->byte_start,"case",strlen("case")))) previous_token= '('; switch(previous_token){ case'(': case'[':case'{': case'+':case'-': case'*':case 197: case'^':case'\\': case'/':case 195: case':':case',': case'=':case 192: case'<':case 191: case'>':case 189: case 190:case'|': case';': /*46:*/ #line 335 "theweave.ch" { ASCII delim= c; id_first= mod_text+1; id_loc= mod_text; if(delim=='`'&& *(loc-2)==64){ *++id_loc= 64; *++id_loc= 64; } *++id_loc= '\''; if(delim=='`')delim= '\''; while(1){ if(loc>=limit)/*48:*/ #line 389 "theweave.ch" { if( *(limit-1)!='\\'){ err_print("! String didn't end");loc= limit;break; } if(get_line()==0){ err_print("! Input ended in middle of string");loc= buffer;break; } } /*:48*/ #line 348 "theweave.ch" if((c= *loc++)==delim)/*47:*/ #line 373 "theweave.ch" { if(++id_loc<=mod_text_end){ *id_loc= c; if( *loc==delim){ if(++id_loc<=mod_text_end) *id_loc= *loc++; continue; }else{ *id_loc= '\''; break; } } } /*:47*/ #line 349 "theweave.ch" if(c=='\\')/*49:*/ #line 403 "theweave.ch" { if(loc>=limit)continue; #if 0 else if(++id_loc<=mod_text_end){ *id_loc= '\\'; c= *loc++; } #endif } #line 816 "weave.web" /*:49*/ #line 350 "theweave.ch" if(++id_loc<=mod_text_end) *id_loc= c; } if(id_loc>=mod_text_end){ printf("\n! String too long: "); fflush(stdout),write(1,mod_text+1,25); printf("...");history= 2; } id_loc++; return(198); } /*:46*/ #line 314 "theweave.ch" case')':case']': case 199:case'.': case 198:case 200: #ifdef WEAVE case 8 #line 498 "weave.web" : return(15); #else return'\"'; #endif default: err_print("! Unknown left context for quote"); printf("\n character: %d = \'%c\'\n\n",previous_token, previous_token); return('\''); } } /*:45*/ #line 174 "theweave.ch" }else if(c==64) /*50:*/ #line 819 "weave.web" { c= *loc++; switch(ccode[c]){ case 126:xref_switch= 10240;continue; case 125:math_flag= !math_flag;continue; #ifdef DEBUG case 249:tracing= c-'0';continue; #endif DEBUG case(200+1):case(200+2):case(200+3): case 238: /*57:*/ #line 900 "weave.web" { c= ccode[ *(loc-1)];id_first= loc; *(limit+1)= 64; while( *loc!=64)loc++; id_loc= loc; if(loc++>limit){ err_print("! Control text didn't end");loc= limit;return(c); } if( *loc++!='>')err_print("! Control codes are forbidden in control text"); return(c); } /*:57*/ #line 829 "weave.web" case 254: /*52:*/ #line 844 "weave.web" { ASCII *k; cur_module_char= c; /*55:*/ #line 863 "weave.web" k= mod_text; while(1){ if(loc>limit&&get_line()==0){ err_print("! Input ended in section name"); loc= buffer+1;break; } c= *loc; /*56:*/ #line 887 "weave.web" if(c==64){ c= *(loc+1); if(c=='>'){ loc+= 2;break; } if(ccode[c]==255){ err_print("! Section name didn't end");break; } *(++k)= 64;loc++; } /*:56*/ #line 872 "weave.web" ; loc++;if(k=mod_text_end){ printf("\n! Section name too long: "); fflush(stdout),write(1,mod_text+1,25); printf("...");{if(history==0)history= 1;}; } if( *k==' '&&k>mod_text)k--; /*:55*/ #line 847 "weave.web" ; if(k-mod_text>3&&strncmp(k-2,"...",3)==0)cur_module= prefix_lookup(mod_text+1,k-3); else cur_module= mod_lookup(mod_text+1,k); xref_switch= 0;return(254); } /*:52*/ #line 831 "weave.web" case 2:/*58:*/ #line 918 "weave.web" { id_first= loc++; *(limit+1)= 64; *(limit+2)= '>'; while( *loc!=64|| *(loc+1)!='>')loc++; if(loc>=limit)err_print("! Verbatim string didn't end"); id_loc= loc;loc+= 2; return(2); } /*:58*/ #line 832 "weave.web" case 239: /*46:*/ #line 335 "theweave.ch" { ASCII delim= c; id_first= mod_text+1; id_loc= mod_text; if(delim=='`'&& *(loc-2)==64){ *++id_loc= 64; *++id_loc= 64; } *++id_loc= '\''; if(delim=='`')delim= '\''; while(1){ if(loc>=limit)/*48:*/ #line 389 "theweave.ch" { if( *(limit-1)!='\\'){ err_print("! String didn't end");loc= limit;break; } if(get_line()==0){ err_print("! Input ended in middle of string");loc= buffer;break; } } /*:48*/ #line 348 "theweave.ch" if((c= *loc++)==delim)/*47:*/ #line 373 "theweave.ch" { if(++id_loc<=mod_text_end){ *id_loc= c; if( *loc==delim){ if(++id_loc<=mod_text_end) *id_loc= *loc++; continue; }else{ *id_loc= '\''; break; } } } /*:47*/ #line 349 "theweave.ch" if(c=='\\')/*49:*/ #line 403 "theweave.ch" { if(loc>=limit)continue; #if 0 else if(++id_loc<=mod_text_end){ *id_loc= '\\'; c= *loc++; } #endif } #line 816 "weave.web" /*:49*/ #line 350 "theweave.ch" if(++id_loc<=mod_text_end) *id_loc= c; } if(id_loc>=mod_text_end){ printf("\n! String too long: "); fflush(stdout),write(1,mod_text+1,25); printf("...");history= 2; } id_loc++; return(198); } /*:46*/ #line 834 "weave.web" ; case 12:/*43:*/ #line 741 "weave.web" { id_first= id_loc= mod_text+1; *id_loc++= '~'; while('0'<= *loc&& *loc<'8') *id_loc++= *loc++; return(199); } /*:43*/ #line 835 "weave.web" ; #line 422 "theweave.ch" case 13:/*44:*/ #line 748 "weave.web" { id_first= id_loc= mod_text+1; *id_loc++= '^'; while(isxdigit( *loc)){ *id_loc++= (islower( *loc)?toupper( *loc): *loc); loc++; } return(199); } /*:44*/ #line 422 "theweave.ch" ; case 9:/*51:*/ #line 430 "theweave.ch" { id_first= mod_text+1; id_loc= mod_text; *++id_loc= '\%'; while(loc=",loc-1,2)==0){ loc+= 1; return 189; } else if(strncmp(".^",loc-1,2)==0){ loc+= 1; return 196; } else if(strncmp(".*",loc-1,2)==0){ loc+= 1; return 197; } } /*:154*/ #line 178 "theweave.ch" return(c); } } /*:38*//*60:*/ #line 943 "weave.web" phase_one(){ phase= 1;reset_input();module_count= 0; skip_limbo();change_exists= 0; while(!input_has_ended) /*61:*/ #line 954 "weave.web" { if(++module_count==2000)stat_overflow("section number"); changed_module[module_count]= 0; if( *(loc-1)=='*'){ printf("*%d",module_count); fflush(stdout); } /*64:*/ #line 1017 "weave.web" while(1){ switch(next_control= skip_TeX()){ case 126:xref_switch= 10240;continue; #ifdef DEBUG case 249:tracing= next_control-'0';continue; #endif DEBUG case 248:C_xref(1);break; case(200+1):case(200+2): case(200+3):case 254: loc-= 2;next_control= get_next(1); if(next_control!=254){ new_xref(id_lookup(id_first,id_loc,next_control-200)); } break; } if(next_control>=251)break; } /*:64*/ #line 962 "weave.web" ; /*66:*/ #line 1055 "weave.web" while(next_control<=252){ xref_switch= 10240; if(next_control==252)next_control= get_next(1); else/*67:*/ #line 1069 "weave.web" { next_control= get_next(1); if(next_control==200){ lhs= id_lookup(id_first,id_loc,0);lhs->dummy.Ilk= 0;new_xref(lhs); next_control= get_next(1); if(next_control==200){ rhs= id_lookup(id_first,id_loc,0); lhs->dummy.Ilk= rhs->dummy.Ilk;rhs->dummy.Ilk= 0;new_xref(rhs); rhs->dummy.Ilk= lhs->dummy.Ilk;next_control= get_next(1); } } } /*:67*/ #line 1059 "weave.web" ; outer_xref(); } /*:66*/ #line 963 "weave.web" ; /*68:*/ #line 1085 "weave.web" if(next_control<=254){ if(next_control==253)mod_xref_switch= 0; else mod_xref_switch= (cur_module_char=='<'?10240:2 *10240); do{ if(next_control==254&&cur_module!=NULL)new_mod_xref(cur_module); next_control= get_next(1);outer_xref(); }while(next_control<=254); } /*:68*/ #line 964 "weave.web" ; if(changed_module[module_count])change_exists= 1; } /*:61*/ #line 947 "weave.web" ; changed_module[module_count]= change_exists; phase= 2; /*71:*/ #line 1138 "weave.web" mod_check(name_dir->dummy.Rlink) /*:71*/ #line 951 "weave.web" ; } /*:60*//*62:*/ #line 980 "weave.web" C_xref(see_v) char see_v; { name_pointer p; while(next_control<251){ if(next_control>=200&&next_control<=(200+3)){ p= id_lookup(id_first,id_loc,next_control-200);new_xref(p); } next_control= get_next(see_v); if(next_control==248||next_control==8 #line 498 "weave.web" )return; } } /*:62*//*63:*/ #line 997 "weave.web" outer_xref() { int bal; while(next_control<251) if(next_control!=8 #line 498 "weave.web" )C_xref(0); else{ bal= copy_comment(1);next_control= 248; while(bal>0){ C_xref(1); if(next_control==248)bal= copy_comment(bal); else bal= 0; } } } /*:63*//*70:*/ #line 1106 "weave.web" mod_check(p)name_pointer p; { int level; if(p){ mod_check(p->link); cur_xref= (xref_pointer)p->equiv_or_xref; level= (cur_xref->num)/10240; if(level==0){ printf("\n! Never defined: <");fflush(stdout),write(1,(p)->byte_start,(((p)+1)->byte_start-((p))->byte_start));putchar('>');{if(history==0)history= 1;}; } while(cur_xref->num>=10240){ if((cur_xref->num)/10240!=level){ printf("\n! You can't use <");fflush(stdout),write(1,(p)->byte_start,(((p)+1)->byte_start-((p))->byte_start)); printf("> both as a file and as a named module");{if(history==0)history= 1;}; } cur_xref= cur_xref->xlink; } if(cur_xref==xmem&&level<2){ printf("\n! Never used: <");fflush(stdout),write(1,(p)->byte_start,(((p)+1)->byte_start-((p))->byte_start));putchar('>');{if(history==0)history= 1;}; } else if(cur_xref!=xmem&&level==2){ printf("\n! You can't use file module (");fflush(stdout),write(1,(p)->byte_start,(((p)+1)->byte_start-((p))->byte_start)); putchar(')');{if(history==0)history= 1;}; } mod_check(p->dummy.Rlink); } } /*:70*//*73:*/ #line 1167 "weave.web" flush_buffer(b,per_cent) ASCII *b; boolean per_cent; { ASCII *j;j= b; if(!per_cent) while(j>out_buf&& *j==' ')j--; fflush(tex_file),write(fileno(tex_file),out_buf+1,j-out_buf); if(per_cent)putc(xchr['%'],tex_file); putc('\n',tex_file);out_line++; if(bout_buf)flush_buffer(out_ptr,0); else{ for(k= buffer;k<=limit;k++) if( *k!=' '&& *k!=011)return; flush_buffer(out_buf,0); } } /*:74*//*76:*/ #line 1221 "weave.web" out_str_del(s,t) ASCII *s, *t; { while(s=out_buf_end)break_out(); *(++out_ptr)= *s++;}; } out_str(s) ASCII *s; { while( *s){if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= *s++;}; } /*:76*//*78:*/ #line 1244 "weave.web" break_out() { ASCII *k= out_ptr; while(1){ if(k==out_buf)/*79:*/ #line 1263 "weave.web" { printf("\n! Line had to be broken (output l. %d):\n",out_line); fflush(stdout),write(1,out_buf+1,out_ptr-out_buf-1); putchar('\n');{if(history==0)history= 1;}; flush_buffer(out_ptr-1,1);return; } /*:79*/ #line 1248 "weave.web" ; if( *k==' '){ flush_buffer(k,0);return; } if( *(k--)=='\\'&& *k!='\\'){ flush_buffer(k,1);return; } } } /*:78*//*80:*/ #line 1277 "weave.web" out_mod(n)sixteen_bits n; { ASCII s[6]; sprintf(s,"%d",n);out_str(s); if(changed_module[n])out_str("\\*"); } /*:80*//*81:*/ #line 1287 "weave.web" out_name(p)name_pointer p;{ ASCII *k, *k_end= (p+1)->byte_start; {if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= '{';}; for(k= p->byte_start;k=out_buf_end)break_out(); *(++out_ptr)= '\\';};{if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= 'D';};{if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= 'O';};{if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= ' ';};} else if( *k=='&'){{if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= '\\';};{if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= 'a';};{if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= 'm';};{if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= 'p';};} else{ if( *k=='_'|| *k=='%'|| *k=='#'|| *k=='^'|| *k=='{'|| *k=='}') {if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= '\\';}; {if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= *k;}; } } {if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= '}';}; } /*:81*//*82:*/ #line 1312 "weave.web" copy_limbo() { ASCII c; while(1){ if(loc>limit&&(finish_line(),get_line()==0))return; *(limit+1)= 64; while( *loc!=64){if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= *(loc++);}; if(loc++<=limit){ c= *loc++; if(ccode[c]==255)break; if(c!='z'&&c!='Z'){ {if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= 64;}; if(c!=64)err_print("! Double @ required outside of sections"); } } } } /*:82*//*84:*/ #line 1340 "weave.web" eight_bits copy_TeX() { ASCII c; while(1){ if(loc>limit&&(finish_line(),get_line()==0))return(255); *(limit+1)= 64; while((c= *(loc++))!=124&&c!=64){ {if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= c;}; if(out_ptr==out_buf+1&&(c==' '||c==011))out_ptr--; } if(c==124)return(248); if(loc<=limit)return(ccode[ *(loc++)]); } } /*:84*//*85:*/ #line 1368 "weave.web" copy_comment(bal) int bal; { ASCII c; while(1){ if(loc>limit) if(1){ loc++;if(bal==1){if(phase==2){if(tok_ptr+2>tok_mem_end)stat_overflow("token"); *(tok_ptr++)= '}';};return(0);} else{ err_print("! Braces don't balance in comment"); /*87:*/ #line 1415 "weave.web" {if(tok_ptr+2>tok_mem_end)stat_overflow("token"); *(tok_ptr++)= ' ';}; while(bal-->0){if(tok_ptr+2>tok_mem_end)stat_overflow("token"); *(tok_ptr++)= '}';}; return(0); /*:87*/ #line 1380 "weave.web" ; } }else{ if(get_line()==0){ err_print("! Input ended in mid-comment"); loc= buffer+1;/*87:*/ #line 1415 "weave.web" {if(tok_ptr+2>tok_mem_end)stat_overflow("token"); *(tok_ptr++)= ' ';}; while(bal-->0){if(tok_ptr+2>tok_mem_end)stat_overflow("token"); *(tok_ptr++)= '}';}; return(0); /*:87*/ #line 1386 "weave.web" ; } } c= *(loc++); if(c==124)return(bal); /*169:*/ #line 375 "scraps.web" {int len;len= strlen("\n"); if(loc+len-1<=limit&&!strncmp(loc-1,"\n",len)){ loc++;if(bal==1){if(phase==2){if(tok_ptr+2>tok_mem_end)stat_overflow("token"); *(tok_ptr++)= '}';};return(0);} else{ err_print("! Braces don't balance in comment"); /*87:*/ #line 1415 "weave.web" {if(tok_ptr+2>tok_mem_end)stat_overflow("token"); *(tok_ptr++)= ' ';}; while(bal-->0){if(tok_ptr+2>tok_mem_end)stat_overflow("token"); *(tok_ptr++)= '}';}; return(0); /*:87*/ #line 382 "scraps.web" ; } } } #line 2385 "weave.web" /*:169*/ #line 1392 "weave.web" ; if(phase==2){if(tok_ptr+2>tok_mem_end)stat_overflow("token"); *(tok_ptr++)= c;}; /*86:*/ #line 1400 "weave.web" if(c==64){ if( *(loc++)!=64){ err_print("! Illegal use of @ in comment"); loc-= 2;if(phase==2)tok_ptr--;/*87:*/ #line 1415 "weave.web" {if(tok_ptr+2>tok_mem_end)stat_overflow("token"); *(tok_ptr++)= ' ';}; while(bal-->0){if(tok_ptr+2>tok_mem_end)stat_overflow("token"); *(tok_ptr++)= '}';}; return(0); /*:87*/ #line 1405 "weave.web" ; } } else if(c=='\\'&& *loc!=64&&phase==2){if(tok_ptr+2>tok_mem_end)stat_overflow("token"); *(tok_ptr++)= *(loc++);} else if(c=='{')bal++; else if(c=='}')bal--; /*:86*/ #line 1394 "weave.web" ; } } /*:85*//*92:*/ #line 48 "grammar.web" #ifdef DEBUG #define PRINT_CAT(A,B)case A:printf(B);break print_cat(c) eight_bits c; { switch(c){ PRINT_CAT(1,"end"); PRINT_CAT(2,"fn_head"); PRINT_CAT(3,"unorbinop"); PRINT_CAT(4,"con_nl"); PRINT_CAT(5,"fquoter"); PRINT_CAT(6,"switch"); PRINT_CAT(7,"con"); PRINT_CAT(8,"stmt"); PRINT_CAT(9,"qclose"); PRINT_CAT(10,"dnl"); PRINT_CAT(11,"else"); PRINT_CAT(12,"forcon"); PRINT_CAT(13,"forbrace"); PRINT_CAT(14,"range"); PRINT_CAT(15,"transp"); PRINT_CAT(16,"ifcon"); PRINT_CAT(17,"swcon"); PRINT_CAT(18,"global_head"); PRINT_CAT(19,"break"); PRINT_CAT(20,"colon"); PRINT_CAT(21,"newline"); PRINT_CAT(22,"semi"); PRINT_CAT(23,"global_list"); PRINT_CAT(24,"for"); PRINT_CAT(25,"decl_head"); PRINT_CAT(26,"equals"); PRINT_CAT(27,"open"); PRINT_CAT(28,"simp"); PRINT_CAT(29,"ifbrace"); PRINT_CAT(30,"ifexpr"); PRINT_CAT(31,"decl_list"); PRINT_CAT(32,"fquotel"); PRINT_CAT(33,"elseif"); PRINT_CAT(34,"expr"); PRINT_CAT(35,"try"); PRINT_CAT(36,"comma"); PRINT_CAT(37,"binop"); PRINT_CAT(38,"close"); PRINT_CAT(39,"fn_arglist"); PRINT_CAT(40,"fn_decl"); PRINT_CAT(41,"forexpr"); PRINT_CAT(42,"qopen"); PRINT_CAT(43,"if"); PRINT_CAT(44,"unop"); PRINT_CAT(45,"ignore_scrap"); case 0:printf("zero");break; default:printf("UNKNOWN");break; } } #endif DEBUG /*:92*//*119:*/ #line 1643 "weave.web" #ifdef DEBUG print_text(p) text_pointer p; { token_pointer j; sixteen_bits r; if(p>=text_ptr)printf("BAD"); else for(j= *p;j< *(p+1);j++){ r= *j%10240; switch( *j/10240){ case 1:printf("\\{");fflush(stdout),write(1,((name_dir+r))->byte_start,((((name_dir+r))+1)->byte_start-(((name_dir+r)))->byte_start));printf("}");break; case 2:printf("\\&{");fflush(stdout),write(1,((name_dir+r))->byte_start,((((name_dir+r))+1)->byte_start-(((name_dir+r)))->byte_start));printf("}");break; case 3:printf("<");fflush(stdout),write(1,((name_dir+r))->byte_start,((((name_dir+r))+1)->byte_start-(((name_dir+r)))->byte_start));printf(">");break; case 4:printf("[[%d]]",r);break; case 5:printf("|[[%d]]|",r);break; default:/*120:*/ #line 1668 "weave.web" switch(r){ case 133:printf("\\mathbin{");break; case 135:printf("\\mathop{");break; case 134:printf("\\mathrel{");break; case 136:printf("[ccancel]");break; case 137:printf("[cancel]");break; case 137+1:printf("[indent]");break; case 137+2:printf("[outdent]");break; case 137+4:printf("[backup]");break; case 137+3:printf("[opt]");break; case 137+5:printf("[break]");break; case 137+6:printf("[force]");break; case 137+7:printf("[fforce]");break; case 137+7+1:printf("[quit]");break; default:putchar(r); } /*:120*/ #line 1662 "weave.web" ; } } } #endif DEBUG /*:119*//*122:*/ #line 1745 "weave.web" app_str(s) ASCII *s; { while( *s) *(tok_ptr++)= *(s++); } app(a) token a; { if(a==' '||a>=136&&a<=137+7){ if(last_mathness==0)init_mathness= 2; else if(last_mathness==1) *(tok_ptr++)= '$'; last_mathness= 2; } else{ if(last_mathness==0)init_mathness= 1; else if(last_mathness==2) *(tok_ptr++)= '$'; last_mathness= last_mathness= 1; } *(tok_ptr++)= a; } app1(a) scrap_pointer a; { switch(((a)->mathness%4)){ case(2): if(last_mathness==0)init_mathness= 2; if(last_mathness==1) *(tok_ptr++)= '$'; last_mathness= (((a)->mathness/4)%4); break; case(1): if(last_mathness==0)init_mathness= 1; else if(last_mathness==2) *(tok_ptr++)= '$'; last_mathness= (((a)->mathness/4)%4); break; case(0): break; } *(tok_ptr++)= 4 *10240+(a)->trans_plus.Trans-tok_start; } /*:122*//*124:*/ #line 1807 "weave.web" /*125:*/ #line 1840 "weave.web" sixteen_bits first_id(p) text_pointer p; { token_pointer tp; sixteen_bits r; sixteen_bits the_id; for(tp= *p;tp< *(p+1);tp++){ r= *tp%10240; switch( *tp/10240){ case 1: return *tp; break; case 2: case 3: goto next; break; case 4: case 5: if((the_id= first_id(tok_start+r))!=0)return the_id; goto next; break; default: goto next; break; } next:continue; } return 0; } /*:125*/ #line 1808 "weave.web" make_underlined(p) scrap_pointer p; { sixteen_bits tok_value; tok_value= first_id(p->trans_plus.Trans); if(tok_value==0){ #ifdef DEBUG if(tracing>0){ printf("\n! I couldn't find an identifier to underline."); {if(history==0)history= 1;}; } #endif DEBUG return; } if(tok_value<10240||tok_value>=2 *10240) {printf("");err_print("! Internal error in first_id");history= 3;wrap_up();}; if(((tok_value-10240+name_dir+1)->byte_start-(tok_value-10240+name_dir)->byte_start)>1) underline_xref(tok_value-10240+name_dir); } /*:124*//*126:*/ #line 1879 "weave.web" underline_xref(p) name_pointer p; { xref_pointer q= (xref_pointer)p->equiv_or_xref; xref_pointer r; sixteen_bits m; sixteen_bits n; if(no_xref)return; xref_switch= 10240; m= module_count+xref_switch; while(q!=xmem){ n= q->num; if(n==m)return; else if(m==n+10240){ q->num= m;return; } else if(n>=10240&&nxlink; } /*127:*/ #line 1909 "weave.web" if(xref_ptr==xmem_end)stat_overflow("cross-reference");else(++xref_ptr)->num= 0;; xref_ptr->xlink= (xref_pointer)p->equiv_or_xref; p->equiv_or_xref= (ASCII *)xref_ptr; r= xref_ptr; while(r->xlink!=q){r->num= r->xlink->num;r= r->xlink;} r->num= m; /*:127*/ #line 1899 "weave.web" ; } /*:126*//*129:*/ #line 1933 "weave.web" reduce(j,k,c,d,n) scrap_pointer j; eight_bits c; short k,d,n; { scrap_pointer i,i1; j->cat= c;j->trans_plus.Trans= text_ptr; j->mathness= ((eight_bits)(init_mathness+4 *(last_mathness))); *(++text_ptr)= tok_ptr; if(k>1){ for(i= j+k,i1= j+1;i<=lo_ptr;i++,i1++){ i1->cat= i->cat;i1->trans_plus.Trans= i->trans_plus.Trans; i1->mathness= i->mathness; } lo_ptr= lo_ptr-k+1; } /*130:*/ #line 1956 "weave.web" if(pp+d>=scrap_base)pp= pp+d; else pp= scrap_base; /*:130*/ #line 1949 "weave.web" ; #ifdef DEBUG /*135:*/ #line 2023 "weave.web" { scrap_pointer k; if(tracing==2){ printf("\n%d:",n); for(k= scrap_base;k<=lo_ptr;k++){ if(k==pp)putchar('*');else putchar(' '); if(((k)->mathness%4)==1)putchar('+'); else if(((k)->mathness%4)==2)putchar('-'); print_cat(k->cat); if((((k)->mathness/4)%4)==1)putchar('+'); else if((((k)->mathness/4)%4)==2)putchar('-'); } if(hi_ptr<=scrap_ptr)printf("..."); } } /*:135*/ #line 1951 "weave.web" ; #endif DEBUG pp--; } /*:129*//*131:*/ #line 1963 "weave.web" squash(j,k,c,d,n) scrap_pointer j; eight_bits c; short k,d,n; { scrap_pointer i; if(k==1){ j->cat= c;/*130:*/ #line 1956 "weave.web" if(pp+d>=scrap_base)pp= pp+d; else pp= scrap_base; /*:130*/ #line 1970 "weave.web" ; #ifdef DEBUG /*135:*/ #line 2023 "weave.web" { scrap_pointer k; if(tracing==2){ printf("\n%d:",n); for(k= scrap_base;k<=lo_ptr;k++){ if(k==pp)putchar('*');else putchar(' '); if(((k)->mathness%4)==1)putchar('+'); else if(((k)->mathness%4)==2)putchar('-'); print_cat(k->cat); if((((k)->mathness/4)%4)==1)putchar('+'); else if((((k)->mathness/4)%4)==2)putchar('-'); } if(hi_ptr<=scrap_ptr)printf("..."); } } /*:135*/ #line 1972 "weave.web" ; #endif DEBUG pp--; return; } for(i= j;ibuffer+50){ printf("..."); fflush(stdout),write(1,loc-51,51); } else fflush(stdout),write(1,buffer+1,loc-buffer); } #endif DEBUG /*:139*/ #line 2057 "weave.web" ; /*132:*/ #line 1985 "weave.web" while(1){ /*133:*/ #line 2004 "weave.web" if(lo_ptrcat= hi_ptr->cat;lo_ptr->mathness= (hi_ptr)->mathness; lo_ptr->trans_plus.Trans= (hi_ptr++)->trans_plus.Trans; } for(i= lo_ptr+1;i<=pp+6-1;i++)i->cat= 0; } /*:133*/ #line 1988 "weave.web" ; if(tok_ptr+8>tok_mem_end||text_ptr+4>tok_start_end){ #ifdef STAT if(tok_ptr>max_tok_ptr)max_tok_ptr= tok_ptr; if(text_ptr>max_text_ptr)max_text_ptr= text_ptr; #endif STAT stat_overflow("token/text"); } if(pp>lo_ptr)break; init_mathness= last_mathness= 0; /*123:*/ #line 1791 "weave.web" { /*93:*/ #line 109 "grammar.web" if((pp+0)->cat!=0&& (pp+1)->cat==45){ app1(pp+0); app1(pp+1); reduce(pp+0,2,(pp+0)->cat,-5,1); goto end_prods; }if((pp+0)->cat==45&& (pp+1)->cat!=0){ app1(pp+0); app1(pp+1); reduce(pp+0,2,(pp+1)->cat,-5,2); goto end_prods; }if((pp+0)->cat==15){ app1(pp+0); app_str("^{\\prime}"); reduce(pp+0,1,44,-2,3); goto end_prods; }if((pp+0)->cat==32){ app1(pp+0); app_str("\\FQL"); app(137+1); reduce(pp+0,1,42,-2,4); goto end_prods; }/*:93*//*94:*/ #line 137 "grammar.web" if((pp+0)->cat==5){ app1(pp+0); app_str("\\FQR"); app(137+2); reduce(pp+0,1,9,-2,5); goto end_prods; }if((pp+0)->cat==42&& (pp+1)->cat==8){ app1(pp+0); app1(pp+1); reduce(pp+0,2,42,-2,6); goto end_prods; }if((pp+0)->cat==42&& (pp+1)->cat==21){ app1(pp+0); app(137+6); app1(pp+1); reduce(pp+0,2,42,-2,7); goto end_prods; }if((pp+0)->cat==42&& (pp+1)->cat==9){ app1(pp+0); app1(pp+1); reduce(pp+0,2,34,-5,8); goto end_prods; }if((pp+0)->cat==42&& (pp+1)->cat==34&& (pp+2)->cat==9){ app1(pp+0); app1(pp+1); app1(pp+2); reduce(pp+0,3,34,-5,9); goto end_prods; }/*:94*//*95:*/ #line 176 "grammar.web" if((pp+0)->cat==21&& ((pp+1)->cat!=21&&(pp+1)->cat!=0)){ app1(pp+0); app(137+6); reduce(pp+0,1,22,-3,10); goto end_prods; }if((pp+0)->cat==21&& (pp+1)->cat==21){ app1(pp+0); app1(pp+1); app(137+7); reduce(pp+0,2,10,-2,11); goto end_prods; }if((pp+0)->cat==10&& (pp+1)->cat==21){ app1(pp+0); app1(pp+1); reduce(pp+0,2,10,-2,12); goto end_prods; }if((pp+0)->cat==10){ app1(pp+0); reduce(pp+0,1,22,-3,13); goto end_prods; }if((pp+0)->cat==10&& ((pp+1)->cat!=21&&(pp+1)->cat!=0)){ app1(pp+0); reduce(pp+0,1,22,-3,14); goto end_prods; }/*:95*//*96:*/ #line 210 "grammar.web" if(((pp+0)->cat==7|| (pp+0)->cat==4)&& (pp+1)->cat==21){ app1(pp+0); app1(pp+1); reduce(pp+0,2,4,-2,15); goto end_prods; }if((pp+0)->cat==4&& ((pp+1)->cat!=21&&(pp+1)->cat!=0)){ app1(pp+0); app(137+6); app1(pp+1); reduce(pp+0,2,(pp+1)->cat,-5,16); goto end_prods; }if((pp+0)->cat==8&& (pp+1)->cat==22){ app1(pp+0); app1(pp+1); reduce(pp+0,2,8,-4,17); goto end_prods; }if((pp+0)->cat==8&& (pp+1)->cat==21&& ((pp+2)->cat!=21&&(pp+2)->cat!=0)){ app1(pp+0); app1(pp+1); app(137+6); reduce(pp+0,2,8,-4,18); goto end_prods; }if((pp+0)->cat==8&& (pp+1)->cat==21&& (pp+2)->cat==21){ app1(pp+0); app1(pp+1); app1(pp+2); app(137+7); reduce(pp+0,3,8,-4,19); goto end_prods; }/*:96*//*97:*/ #line 253 "grammar.web" if((pp+0)->cat==25&& (pp+1)->cat==28){ app1(pp+0); app(137+1); app_str("\\"); app_str(" "); app1(pp+1); reduce(pp+0,2,31,-2,20); goto end_prods; }if((pp+0)->cat==31&& (pp+1)->cat==28){ app1(pp+0); app_str("\\"); app_str(" "); app1(pp+1); reduce(pp+0,2,31,-2,21); goto end_prods; }if((pp+0)->cat==31&& (pp+1)->cat==36&& (pp+2)->cat==28){ app1(pp+0); app1(pp+1); app_str("\\"); app_str(" "); app1(pp+2); reduce(pp+0,3,31,-2,22); goto end_prods; }if((pp+0)->cat==18&& (pp+1)->cat==28){ app1(pp+0); app(137+1); app_str("\\"); app_str(" "); make_underlined(pp+1); app1(pp+1); reduce(pp+0,2,23,-2,23); goto end_prods; }if((pp+0)->cat==23&& (pp+1)->cat==28){ app1(pp+0); app_str("\\"); app_str(" "); make_underlined(pp+1); app1(pp+1); reduce(pp+0,2,23,-2,24); goto end_prods; }/*:97*//*98:*/ #line 307 "grammar.web" if((pp+0)->cat==23&& (pp+1)->cat==36&& (pp+2)->cat==28){ app1(pp+0); app1(pp+1); app_str("\\"); app_str(" "); make_underlined(pp+2); app1(pp+2); reduce(pp+0,3,23,-2,25); goto end_prods; }if((pp+0)->cat==31&& (pp+1)->cat==22){ app1(pp+0); app(137+2); app1(pp+1); reduce(pp+0,2,8,-4,26); goto end_prods; }if((pp+0)->cat==23&& (pp+1)->cat==22){ app1(pp+0); app(137+2); app1(pp+1); reduce(pp+0,2,8,-4,27); goto end_prods; }if((pp+0)->cat==34&& (pp+1)->cat==44){ app1(pp+0); app1(pp+1); reduce(pp+0,2,34,-5,28); goto end_prods; }if((pp+0)->cat==34&& ((pp+1)->cat==37|| (pp+1)->cat==3)&& (pp+2)->cat==34){ app1(pp+0); app1(pp+1); app1(pp+2); reduce(pp+0,3,34,-5,29); goto end_prods; }/*:98*//*99:*/ #line 354 "grammar.web" if(!((pp+0)->cat==0||(pp+0)->cat==43|| (pp+0)->cat==33|| (pp+0)->cat==6)&& (pp+1)->cat==34&& (pp+2)->cat==36&& (pp+3)->cat==34){ app1(pp+1); app1(pp+2); app(137+3); app_str("9"); app1(pp+3); reduce(pp+1,3,34,-5,30); goto end_prods; }if((pp+0)->cat==28&& (pp+1)->cat==27){ app1(pp+0); app1(pp+1); reduce(pp+0,2,27,-2,31); goto end_prods; }if((pp+0)->cat==28){ app1(pp+0); reduce(pp+0,1,34,-5,32); goto end_prods; }if(((pp+0)->cat==27)&& (pp+1)->cat==34&& (pp+2)->cat==38){ app1(pp+0); app1(pp+1); app1(pp+2); reduce(pp+0,3,34,-5,33); goto end_prods; }if(((pp+0)->cat==27)&& (pp+1)->cat==38){ app1(pp+0); app_str("\\thinspace"); app1(pp+1); reduce(pp+0,2,34,-5,34); goto end_prods; }/*:99*//*100:*/ #line 399 "grammar.web" if((pp+0)->cat==27&& (pp+1)->cat==8){ app1(pp+0); app1(pp+1); app_str("\\"); app_str(" "); reduce(pp+0,2,27,-2,35); goto end_prods; }if(((pp+0)->cat==44|| (pp+0)->cat==3)&& (pp+1)->cat==34){ app1(pp+0); app1(pp+1); reduce(pp+0,2,34,-5,36); goto end_prods; }if((pp+0)->cat==34&& (pp+1)->cat==26&& (pp+2)->cat==34&& ((pp+3)->cat==36|| (pp+3)->cat==22|| (pp+3)->cat==21)){ app1(pp+0); app1(pp+1); app1(pp+2); app1(pp+3); reduce(pp+0,4,8,-4,37); goto end_prods; }if((pp+0)->cat==34&& (pp+1)->cat==20){ app1(pp+0); app1(pp+1); reduce(pp+0,2,14,-2,38); goto end_prods; }if((pp+0)->cat==14&& (pp+1)->cat==34){ app1(pp+0); app1(pp+1); reduce(pp+0,2,34,-5,39); goto end_prods; }/*:100*//*101:*/ #line 445 "grammar.web" if((pp+0)->cat==20){ app_str("\\mathord{\\kern.1em"); app1(pp+0); app_str("\\kern.1em}"); reduce(pp+0,1,34,-5,40); goto end_prods; }if(!((pp+0)->cat==0||(pp+0)->cat==43|| (pp+0)->cat==33|| (pp+0)->cat==6)&& (pp+1)->cat==34&& (pp+2)->cat==34){ app1(pp+1); app_str("\\"); app_str(" "); app1(pp+2); reduce(pp+1,2,34,-5,41); goto end_prods; }if((pp+0)->cat==2&& (pp+1)->cat==34&& (pp+2)->cat==26){ app1(pp+0); app1(pp+1); app1(pp+2); reduce(pp+0,3,2,-2,42); goto end_prods; }if((pp+0)->cat==2&& (pp+1)->cat==28){ app1(pp+0); app(137+1); app1(pp+1); reduce(pp+0,2,40,-2,43); goto end_prods; }if((pp+0)->cat==40&& (pp+1)->cat==27){ app1(pp+0); app1(pp+1); reduce(pp+0,2,39,-2,44); goto end_prods; }/*:101*//*102:*/ #line 491 "grammar.web" if((pp+0)->cat==40){ app1(pp+0); app(137+1); reduce(pp+0,1,8,-4,45); goto end_prods; }if((pp+0)->cat==39&& ((pp+1)->cat==28|| (pp+1)->cat==36|| (pp+1)->cat==34)){ app1(pp+0); app1(pp+1); reduce(pp+0,2,39,-2,46); goto end_prods; }if((pp+0)->cat==39&& (pp+1)->cat==38){ app1(pp+0); app1(pp+1); reduce(pp+0,2,8,-4,47); goto end_prods; }if((pp+0)->cat==43&& (pp+1)->cat==34&& !((pp+2)->cat==0||(pp+2)->cat==37|| (pp+2)->cat==3)){ app1(pp+0); app1(pp+1); reduce(pp+0,2,30,-2,48); goto end_prods; }if((pp+0)->cat==43&& (pp+1)->cat==34&& (pp+2)->cat==7&& (pp+3)->cat==21){ app1(pp+0); app1(pp+1); app1(pp+2); app(137+1); app(137+1); app(137+6); app1(pp+3); reduce(pp+0,4,16,-2,49); goto end_prods; }/*:102*//*103:*/ #line 539 "grammar.web" if((pp+0)->cat==43&& (pp+1)->cat==34&& ((pp+2)->cat==37|| (pp+2)->cat==3)&& (pp+3)->cat==7&& (pp+4)->cat==21){ app1(pp+0); app1(pp+1); app1(pp+2); app1(pp+3); app(137+1); app(137+1); app(137+6); app1(pp+4); reduce(pp+0,5,16,-2,50); goto end_prods; }if((pp+0)->cat==43&& (pp+1)->cat==34&& ((pp+2)->cat==37|| (pp+2)->cat==3)&& (pp+3)->cat==34&& (pp+4)->cat==7&& (pp+5)->cat==21){ app1(pp+0); app1(pp+1); app1(pp+2); app1(pp+3); app1(pp+4); app(137+1); app(137+1); app(137+6); app1(pp+5); reduce(pp+0,6,16,-2,51); goto end_prods; }if((pp+0)->cat==16&& (pp+1)->cat==7&& (pp+2)->cat==21){ app1(pp+0); app1(pp+1); app(137+6); app1(pp+2); reduce(pp+0,3,16,-2,52); goto end_prods; }if((pp+0)->cat==16&& ((pp+1)->cat==37|| (pp+1)->cat==3)&& (pp+2)->cat==34){ app1(pp+0); app1(pp+1); app1(pp+2); reduce(pp+0,3,16,-2,53); goto end_prods; }if((pp+0)->cat==16&& (pp+1)->cat==34){ app1(pp+0); app1(pp+1); reduce(pp+0,2,16,-2,54); goto end_prods; }/*:103*//*104:*/ #line 605 "grammar.web" if((pp+0)->cat==30&& (pp+1)->cat==8){ app1(pp+0); app(137+1); app_str("\\thinspace\\"); app_str(" "); app1(pp+1); reduce(pp+0,2,29,-2,55); goto end_prods; }if((pp+0)->cat==30&& (pp+1)->cat==36&& (pp+2)->cat==8){ app1(pp+0); app1(pp+1); app(137+1); app1(pp+2); reduce(pp+0,3,29,-2,56); goto end_prods; }if((pp+0)->cat==30&& (pp+1)->cat==21){ app1(pp+0); app1(pp+1); app(137+1); app(137+6); reduce(pp+0,2,29,-2,57); goto end_prods; }if((pp+0)->cat==16&& (pp+1)->cat==8){ app1(pp+0); app(137+2); app(137+6); app1(pp+1); reduce(pp+0,2,29,-2,58); goto end_prods; }if((pp+0)->cat==16&& (pp+1)->cat==36&& (pp+2)->cat==8){ app1(pp+0); app1(pp+1); app(137+2); app(137+6); app1(pp+2); reduce(pp+0,3,29,-2,59); goto end_prods; }/*:104*//*105:*/ #line 656 "grammar.web" if((pp+0)->cat==16&& (pp+1)->cat==34&& (pp+2)->cat==36&& (pp+3)->cat!=0){ app1(pp+0); app1(pp+1); app1(pp+2); app(137+2); app(137+6); reduce(pp+0,3,29,-2,60); goto end_prods; }if((pp+0)->cat==16&& (pp+1)->cat==34&& (pp+2)->cat==21&& (pp+3)->cat!=0){ app1(pp+0); app1(pp+1); app1(pp+2); app(137+2); app(137+6); reduce(pp+0,3,29,-2,61); goto end_prods; }if((pp+0)->cat==29&& (pp+1)->cat==11){ app1(pp+0); app(137+2); app1(pp+1); app(137+1); reduce(pp+0,2,13,-2,62); goto end_prods; }if((pp+0)->cat==29&& (pp+1)->cat==33&& ((pp+2)->cat==34|| (pp+2)->cat==28)&& (pp+3)->cat==21){ app1(pp+0); app(137+2); app1(pp+1); app(137+1); app1(pp+2); app(137+6); app1(pp+3); reduce(pp+0,4,29,-2,63); goto end_prods; }if((pp+0)->cat==29&& (pp+1)->cat==33&& (pp+2)->cat==34&& (pp+3)->cat==8){ app1(pp+0); app(137+2); app1(pp+1); app(137+1); app1(pp+2); app_str("\\thinspace\\"); app_str(" "); app1(pp+3); reduce(pp+0,4,29,-2,64); goto end_prods; }/*:105*//*106:*/ #line 722 "grammar.web" if((pp+0)->cat==29&& (pp+1)->cat==33&& (pp+2)->cat==34&& (pp+3)->cat==36&& (pp+4)->cat==8){ app1(pp+0); app(137+2); app1(pp+1); app(137+1); app1(pp+2); app1(pp+3); app1(pp+4); reduce(pp+0,5,29,-2,65); goto end_prods; }if((pp+0)->cat==29&& (pp+1)->cat==8){ app1(pp+0); app(137+6); app1(pp+1); reduce(pp+0,2,29,-2,66); goto end_prods; }if((pp+0)->cat==29&& (pp+1)->cat==22){ app1(pp+0); app1(pp+1); reduce(pp+0,2,29,-2,67); goto end_prods; }if((pp+0)->cat==29&& (pp+1)->cat==21&& (pp+2)->cat==1&& ((pp+3)->cat==36|| (pp+3)->cat==22)){ app1(pp+0); app1(pp+1); app(137+2); app(137+6); app1(pp+2); app1(pp+3); reduce(pp+0,4,8,-4,68); goto end_prods; }if((pp+0)->cat==29&& (pp+1)->cat==1){ app1(pp+0); app(137+2); app_str(" "); app1(pp+1); reduce(pp+0,2,8,-4,69); goto end_prods; }/*:106*//*107:*/ #line 778 "grammar.web" if((pp+0)->cat==29&& (pp+1)->cat==1&& ((pp+2)->cat==36|| (pp+2)->cat==22)){ app1(pp+0); app(137+2); app_str(" "); app1(pp+1); app1(pp+2); reduce(pp+0,3,8,-4,70); goto end_prods; }if((pp+0)->cat==35){ app1(pp+0); app(137+1); reduce(pp+0,1,29,-2,71); goto end_prods; }if((pp+0)->cat==6&& (pp+1)->cat==34&& !((pp+2)->cat==0||(pp+2)->cat==37|| (pp+2)->cat==3)){ app1(pp+0); app1(pp+1); app(137+1); app(137+6); reduce(pp+0,2,29,-2,72); goto end_prods; }if((pp+0)->cat==6&& (pp+1)->cat==34&& (pp+2)->cat==7&& (pp+3)->cat==21){ app1(pp+0); app1(pp+1); app1(pp+2); app(137+1); app(137+1); app(137+6); app1(pp+3); reduce(pp+0,4,17,-2,73); goto end_prods; }if((pp+0)->cat==6&& (pp+1)->cat==34&& ((pp+2)->cat==37|| (pp+2)->cat==3)&& (pp+3)->cat==7&& (pp+4)->cat==21){ app1(pp+0); app1(pp+1); app1(pp+2); app1(pp+3); app(137+1); app(137+1); app(137+6); app1(pp+4); reduce(pp+0,5,17,-2,74); goto end_prods; }/*:107*//*108:*/ #line 841 "grammar.web" if((pp+0)->cat==6&& (pp+1)->cat==34&& ((pp+2)->cat==37|| (pp+2)->cat==3)&& (pp+3)->cat==34&& (pp+4)->cat==7&& (pp+5)->cat==21){ app1(pp+0); app1(pp+1); app1(pp+2); app1(pp+3); app1(pp+4); app(137+1); app(137+1); app(137+6); app1(pp+5); reduce(pp+0,6,17,-2,75); goto end_prods; }if((pp+0)->cat==17&& (pp+1)->cat==7&& (pp+2)->cat==21){ app1(pp+0); app1(pp+1); app(137+6); app1(pp+2); reduce(pp+0,3,17,-2,76); goto end_prods; }if((pp+0)->cat==17&& ((pp+1)->cat==37|| (pp+1)->cat==3)&& (pp+2)->cat==34){ app1(pp+0); app1(pp+1); app1(pp+2); reduce(pp+0,3,17,-2,77); goto end_prods; }if((pp+0)->cat==17&& (pp+1)->cat==34){ app1(pp+0); app1(pp+1); reduce(pp+0,2,17,-2,78); goto end_prods; }if((pp+0)->cat==17&& (pp+1)->cat==8){ app1(pp+0); app(137+2); app(137+6); app1(pp+1); reduce(pp+0,2,29,-2,79); goto end_prods; }/*:108*//*109:*/ #line 898 "grammar.web" if((pp+0)->cat==17&& (pp+1)->cat==36&& (pp+2)->cat==8){ app1(pp+0); app1(pp+1); app(137+2); app(137+6); app1(pp+2); reduce(pp+0,3,29,-2,80); goto end_prods; }if((pp+0)->cat==17&& (pp+1)->cat==34&& (pp+2)->cat==36&& (pp+3)->cat!=0){ app1(pp+0); app1(pp+1); app1(pp+2); app(137+2); app(137+6); reduce(pp+0,3,29,-2,81); goto end_prods; }if((pp+0)->cat==17&& (pp+1)->cat==34&& (pp+2)->cat==21&& (pp+3)->cat!=0){ app1(pp+0); app1(pp+1); app1(pp+2); app(137+2); app(137+6); reduce(pp+0,3,29,-2,82); goto end_prods; }if((pp+0)->cat==24&& (pp+1)->cat==34&& (pp+2)->cat==26&& (pp+3)->cat==34){ app1(pp+0); app1(pp+1); app1(pp+2); app1(pp+3); reduce(pp+0,4,41,-2,83); goto end_prods; }if((pp+0)->cat==24&& (pp+1)->cat==34&& (pp+2)->cat==26&& ((pp+3)->cat==34|| (pp+3)->cat==28)&& ((pp+4)->cat==20|| (pp+4)->cat==37|| (pp+4)->cat==3|| (pp+4)->cat==36)&& ((pp+5)->cat==34|| (pp+5)->cat==28)){ app1(pp+0); app1(pp+1); app1(pp+2); app1(pp+3); app1(pp+4); app1(pp+5); reduce(pp+0,6,41,-2,84); goto end_prods; }/*:109*//*110:*/ #line 967 "grammar.web" if((pp+0)->cat==41&& ((pp+1)->cat==20|| (pp+1)->cat==37|| (pp+1)->cat==3|| (pp+1)->cat==36)&& ((pp+2)->cat==34|| (pp+2)->cat==28)){ app1(pp+0); app1(pp+1); app1(pp+2); reduce(pp+0,3,41,-2,85); goto end_prods; }if((pp+0)->cat==41&& ((pp+1)->cat==20|| (pp+1)->cat==37|| (pp+1)->cat==3|| (pp+1)->cat==36)&& (pp+2)->cat==7&& (pp+3)->cat==21){ app1(pp+0); app1(pp+1); app1(pp+2); app(137+1); app(137+1); app(137+6); app1(pp+3); reduce(pp+0,4,12,-2,86); goto end_prods; }if((pp+0)->cat==41&& (pp+1)->cat==7&& (pp+2)->cat==21){ app1(pp+0); app1(pp+1); app(137+1); app(137+1); app(137+6); app1(pp+2); reduce(pp+0,3,12,-2,87); goto end_prods; }if((pp+0)->cat==12&& (pp+1)->cat==7&& (pp+2)->cat==21){ app1(pp+0); app1(pp+1); app(137+6); app1(pp+2); reduce(pp+0,3,12,-2,88); goto end_prods; }if((pp+0)->cat==12&& ((pp+1)->cat==20|| (pp+1)->cat==37|| (pp+1)->cat==3|| (pp+1)->cat==36)&& ((pp+2)->cat==34|| (pp+2)->cat==28)){ app1(pp+0); app1(pp+1); app1(pp+2); reduce(pp+0,3,12,-2,89); goto end_prods; }/*:110*//*111:*/ #line 1036 "grammar.web" if((pp+0)->cat==12&& ((pp+1)->cat==34|| (pp+1)->cat==28)){ app1(pp+0); app1(pp+1); reduce(pp+0,2,12,-2,90); goto end_prods; }if((pp+0)->cat==12&& (pp+1)->cat==8){ app1(pp+0); app(137+2); app(137+6); app1(pp+1); reduce(pp+0,2,13,-2,91); goto end_prods; }if((pp+0)->cat==41&& (pp+1)->cat==8){ app1(pp+0); app(137+1); app_str(" "); app1(pp+1); reduce(pp+0,2,13,-2,92); goto end_prods; }if((pp+0)->cat==41&& (pp+1)->cat==21){ app1(pp+0); app(137+1); app(137+6); app1(pp+1); reduce(pp+0,2,13,-2,93); goto end_prods; }if((pp+0)->cat==13&& (pp+1)->cat==36){ app1(pp+0); app1(pp+1); reduce(pp+0,2,13,-2,94); goto end_prods; }/*:111*//*112:*/ #line 1079 "grammar.web" if((pp+0)->cat==13&& (pp+1)->cat==8){ app1(pp+0); app1(pp+1); reduce(pp+0,2,13,-2,95); goto end_prods; }if((pp+0)->cat==13&& (pp+1)->cat==21&& (pp+2)->cat==1){ app1(pp+0); app1(pp+1); app(137+2); app(137+6); app1(pp+2); reduce(pp+0,3,8,-4,96); goto end_prods; }if((pp+0)->cat==13&& (pp+1)->cat==1){ app1(pp+0); app(137+2); app_str(" "); app1(pp+1); reduce(pp+0,2,8,-4,97); goto end_prods; }if((pp+0)->cat==13&& (pp+1)->cat==1&& ((pp+2)->cat==36|| (pp+2)->cat==22)){ app1(pp+0); app(137+2); app_str(" "); app1(pp+1); app1(pp+2); reduce(pp+0,3,8,-4,98); goto end_prods; }if(((pp+0)->cat==19|| (pp+0)->cat==34|| (pp+0)->cat==8)&& (pp+1)->cat==22){ app1(pp+0); app1(pp+1); reduce(pp+0,2,8,-4,99); goto end_prods; }/*:112*//*113:*/ #line 1128 "grammar.web" if((pp+0)->cat==8&& (pp+1)->cat==8){ app1(pp+0); app(137+6); app1(pp+1); reduce(pp+0,2,8,-4,100); goto end_prods; }if((pp+0)->cat==22){ app1(pp+0); reduce(pp+0,1,8,-4,101); goto end_prods; }if((pp+0)->cat==34&& (pp+1)->cat==36&& (pp+2)->cat==8){ app1(pp+0); app1(pp+1); app1(pp+2); reduce(pp+0,3,8,-4,102); goto end_prods; } end_prods: /*:113*/ #line 1793 "weave.web" pp++; } /*:123*/ #line 1998 "weave.web" ; } /*:132*/ #line 2058 "weave.web" ; /*137:*/ #line 2067 "weave.web" { /*138:*/ #line 2083 "weave.web" #ifdef DEBUG if(lo_ptr>scrap_base&&tracing==1){ printf("\nIrreducible scrap sequence in section %d:",module_count); {if(history==0)history= 1;}; for(j= scrap_base;j<=lo_ptr;j++){ printf(" ");print_cat(j->cat); } } #endif DEBUG /*:138*/ #line 2068 "weave.web" ; for(j= scrap_base;j<=lo_ptr;j++){ if(j!=scrap_base) *(tok_ptr++)= ' '; if((((j)->mathness%4)==1)&&math_flag==0) *(tok_ptr++)= '$'; if((((j)->mathness%4)==2)&&math_flag==1){ *(tok_ptr++)= ' '; *(tok_ptr++)= '$';} *(tok_ptr++)= 4 *10240+(j)->trans_plus.Trans-tok_start; if(((((j)->mathness/4)%4)==1)&&math_flag==0) *(tok_ptr++)= '$'; if(((((j)->mathness/4)%4)==2)&&math_flag==1){ *(tok_ptr++)= '$'; *(tok_ptr++)= ' ';} if(tok_ptr+6>tok_mem_end)stat_overflow("token"); } *(++text_ptr)= tok_ptr;return(text_ptr-1); } /*:137*/ #line 2059 "weave.web" ; } /*:136*//*140:*/ #line 2151 "weave.web" C_parse(see_v) char see_v; { name_pointer p; while(next_control<251){ /*142:*/ #line 2169 "weave.web" /*144:*/ #line 2230 "weave.web" if(scrap_ptr+50>scrap_info_end||tok_ptr+50>tok_mem_end|| text_ptr+50>tok_start_end){ #ifdef STAT if(scrap_ptr>max_scr_ptr)max_scr_ptr= scrap_ptr; if(tok_ptr>max_tok_ptr)max_tok_ptr= tok_ptr; if(text_ptr>max_text_ptr)max_text_ptr= text_ptr; #endif STAT stat_overflow("scrap/token/text"); } /*:144*/ #line 2171 "weave.web" ; #line 447 "theweave.ch" switch(next_control){ /*39:*/ #line 183 "theweave.ch" case 32: (++scrap_ptr)->cat= 32;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case 5: (++scrap_ptr)->cat= 5;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case 15: (++scrap_ptr)->cat= 15;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; #line 700 "weave.web" /*:39*//*159:*/ #line 69 "scraps.web" case'[': *(tok_ptr++)= next_control; *(tok_ptr++)= 137+1; (++scrap_ptr)->cat= 27;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case'(': *(tok_ptr++)= next_control; *(tok_ptr++)= 137+1; (++scrap_ptr)->cat= 27;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case 194: app_str("{.\\thinspace.}"); (++scrap_ptr)->cat= 28;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case']': *(tok_ptr++)= next_control; *(tok_ptr++)= 137+2; (++scrap_ptr)->cat= 38;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case')': *(tok_ptr++)= next_control; *(tok_ptr++)= 137+2; (++scrap_ptr)->cat= 38;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case 195: app_str("\\mathbin{./}"); (++scrap_ptr)->cat= 37;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case'\\': app_str("\\backslash"); (++scrap_ptr)->cat= 37;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case'^': app_str("\\mathbin{\\hat{}}"); (++scrap_ptr)->cat= 37;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case'*': app_str("{*}"); (++scrap_ptr)->cat= 37;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case 190: app_str("\\L"); (++scrap_ptr)->cat= 37;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case'+': *(tok_ptr++)= next_control; (++scrap_ptr)->cat= 3;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case 191: app_str("\\I"); (++scrap_ptr)->cat= 37;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case 192: app_str("\\S"); (++scrap_ptr)->cat= 37;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case',': app_str(",\\;"); (++scrap_ptr)->cat= 36;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case 189: app_str("\\G"); (++scrap_ptr)->cat= 37;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case'{': app_str("\\{"); *(tok_ptr++)= 137+1; (++scrap_ptr)->cat= 27;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case':': app_str("\\mathbin:"); (++scrap_ptr)->cat= 20;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case'-': *(tok_ptr++)= next_control; (++scrap_ptr)->cat= 3;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case'|': app_str("\\V"); (++scrap_ptr)->cat= 37;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case';': app_str(";\\;"); (++scrap_ptr)->cat= 22;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case'.': *(tok_ptr++)= next_control; (++scrap_ptr)->cat= 37;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case'<': *(tok_ptr++)= next_control; (++scrap_ptr)->cat= 37;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case'}': app_str("\\}"); *(tok_ptr++)= 137+2; (++scrap_ptr)->cat= 38;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case'/': *(tok_ptr++)= next_control; (++scrap_ptr)->cat= 37;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case'~': app_str("\\neg"); (++scrap_ptr)->cat= 44;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case'=': app_str("="); (++scrap_ptr)->cat= 26;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case'>': *(tok_ptr++)= next_control; (++scrap_ptr)->cat= 37;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case 193: app_str("\\ldots"); (++scrap_ptr)->cat= 7;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case 196: app_str("\\mathbin{.\\hat{}}"); (++scrap_ptr)->cat= 37;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case 197: app_str("\\mathbin{.*}"); (++scrap_ptr)->cat= 37;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case'&': app_str("\\W"); (++scrap_ptr)->cat= 37;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; /*:159*/ #line 448 "theweave.ch" case 198:case 199:case 2: /*146:*/ #line 2258 "weave.web" { int imag= 0; if(next_control==199)app_str("\\O{"); else if(next_control==198)app_str("\\.{"); else app_str("\\={"); while(id_firsttok_mem_end)stat_overflow("token"); *(tok_ptr++)= *id_first++;}; #else {if(tok_ptr+2>tok_mem_end)stat_overflow("token"); *(tok_ptr++)= *id_first++;}; #endif } *(tok_ptr++)= '}'; #ifdef MATLAB_FLOATING_POINT if(imag) *(tok_ptr++)= 'i'; #endif /*156:*/ #line 60 "scraps.web" (++scrap_ptr)->cat= 28;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; /*:156*/ #line 2284 "weave.web" } /*:146*/ #line 450 "theweave.ch" ; break; case 9: app_str("\\CCM{"); while(id_firsttok_mem_end)stat_overflow("token"); *(tok_ptr++)= *id_first++;}; } *(tok_ptr++)= '}'; (++scrap_ptr)->cat= 45;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(2+4 *(2))); *(++text_ptr)= tok_ptr;; #line 2177 "weave.web" case 10:/*157:*/ #line 62 "scraps.web" (++scrap_ptr)->cat= 21;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(0+4 *(0))); *(++text_ptr)= tok_ptr;; /*:157*/ #line 2177 "weave.web" ;break; case 200:/*155:*/ #line 44 "scraps.web" p= id_lookup(id_first,id_loc,0); if(p->dummy.Ilk==0||p->dummy.Ilk==4){ *(tok_ptr++)= 10240+p-name_dir; (++scrap_ptr)->cat= 28;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; } else if(p->dummy.Ilk>3){ /*162:*/ #line 254 "scraps.web" switch(p->dummy.Ilk){ case 64: *(tok_ptr++)= 2 *10240+p-name_dir;app_str("\\"); app_str(" "); (++scrap_ptr)->cat= 6;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case 65: *(tok_ptr++)= 2 *10240+p-name_dir;app_str("\\"); app_str(" "); (++scrap_ptr)->cat= 2;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case 66: app_str(""); (++scrap_ptr)->cat= 15;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case 67: app_str(""); (++scrap_ptr)->cat= 32;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case 68: *(tok_ptr++)= 2 *10240+p-name_dir;app_str("\\"); app_str(" "); (++scrap_ptr)->cat= 24;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case 69: *(tok_ptr++)= 2 *10240+p-name_dir; (++scrap_ptr)->cat= 1;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case 70: app_str("\\infty"); (++scrap_ptr)->cat= 28;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case 71: *(tok_ptr++)= 2 *10240+p-name_dir;app_str("\\"); app_str(" "); (++scrap_ptr)->cat= 43;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case 72: app_str(""); (++scrap_ptr)->cat= 5;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case 73: *(tok_ptr++)= 2 *10240+p-name_dir; (++scrap_ptr)->cat= 11;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case 74: app_str("\\pi"); (++scrap_ptr)->cat= 28;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case 75: *(tok_ptr++)= 2 *10240+p-name_dir; (++scrap_ptr)->cat= 18;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case 76: *(tok_ptr++)= 2 *10240+p-name_dir;app_str("\\"); app_str(" "); (++scrap_ptr)->cat= 33;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case 77: *(tok_ptr++)= 2 *10240+p-name_dir; (++scrap_ptr)->cat= 25;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case 78: *(tok_ptr++)= 2 *10240+p-name_dir; (++scrap_ptr)->cat= 35;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; case 79: *(tok_ptr++)= 2 *10240+p-name_dir; (++scrap_ptr)->cat= 19;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; break; } /*:162*/ #line 51 "scraps.web" ; } else{ err_print("! Identifier with unmentioned ilk"); } /*:155*/ #line 2178 "weave.web" ;break; case 238:/*148:*/ #line 2299 "weave.web" app_str("\\hbox{");while(id_firsttok_mem_end)stat_overflow("token"); *(tok_ptr++)= *id_first++;}; *(tok_ptr++)= '}'; /*156:*/ #line 60 "scraps.web" (++scrap_ptr)->cat= 28;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;; /*:156*/ #line 2302 "weave.web" /*:148*/ #line 2179 "weave.web" ;break; case 0:case 248: break; case(200+1):case(200+2):case(200+3): break; /*143:*/ #line 2196 "weave.web" case 241: app_str("\\,"); (++scrap_ptr)->cat= 45;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;;break; case 242: *(tok_ptr++)= 137+3;app_str("0"); (++scrap_ptr)->cat= 45;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;;break; case 244: app_str("\\0"); (++scrap_ptr)->cat= 45;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(1+4 *(1))); *(++text_ptr)= tok_ptr;;break; case 243: *(tok_ptr++)= 137+6; (++scrap_ptr)->cat= 45;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(2+4 *(2))); *(++text_ptr)= tok_ptr;;break; case 245: *(tok_ptr++)= 137+7; (++scrap_ptr)->cat= 45;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(2+4 *(2))); *(++text_ptr)= tok_ptr;;break; case 246: *(tok_ptr++)= 136; app_str("{}"); *(tok_ptr++)= 137+5; app_str("{}"); *(tok_ptr++)= 136; (++scrap_ptr)->cat= 45;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(2+4 *(2))); *(++text_ptr)= tok_ptr;;break; case 247: /*158:*/ #line 65 "scraps.web" app_str("\\relax"); (++scrap_ptr)->cat= 22;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(0+4 *(0))); *(++text_ptr)= tok_ptr;; /*:158*/ #line 2221 "weave.web" break; /*:143*/ #line 2184 "weave.web" case 240:app_str("\\J");(++scrap_ptr)->cat= 45;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(2+4 *(2))); *(++text_ptr)= tok_ptr;;break; default: *(tok_ptr++)= next_control;(++scrap_ptr)->cat= 45;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(2+4 *(2))); *(++text_ptr)= tok_ptr;;break; } /*:142*/ #line 2156 "weave.web" ; next_control= get_next(see_v); if(next_control==248||next_control==8 #line 498 "weave.web" )return; } } /*:140*//*149:*/ #line 2310 "weave.web" text_pointer C_translate() { text_pointer p; scrap_pointer save_base; save_base= scrap_base;scrap_base= scrap_ptr+1; C_parse(1); if(next_control!=248)err_print("! Missing vertical_bar after C text"); {if(tok_ptr+2>tok_mem_end)stat_overflow("token"); *(tok_ptr++)= 137;};(++scrap_ptr)->cat= 45;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(2+4 *(2))); *(++text_ptr)= tok_ptr;; p= translate(); #ifdef STAT if(scrap_ptr>max_scr_ptr)max_scr_ptr= scrap_ptr; #endif STAT scrap_ptr= scrap_base-1;scrap_base= save_base; return(p); } /*:149*//*150:*/ #line 2334 "weave.web" outer_parse() { int bal; text_pointer p,q; while(next_control<251){ if(next_control==8 #line 498 "weave.web" ){ /*152:*/ #line 2373 "weave.web" if(tok_ptr+50>tok_mem_end||text_ptr+50>tok_start_end ||scrap_ptr+50>scrap_info_end){ #ifdef STAT if(scrap_ptr>max_scr_ptr)max_scr_ptr= scrap_ptr; if(tok_ptr>max_tok_ptr)max_tok_ptr= tok_ptr; if(text_ptr>max_text_ptr)max_text_ptr= text_ptr; #endif STAT stat_overflow("token/text/scrap"); } #line 1 "scraps.web" /*:152*/ #line 2341 "weave.web" ; /*151:*/ #line 2351 "weave.web" *(tok_ptr++)= 137+5;app_str("\\C{"); bal= copy_comment(1);next_control= 248; while(bal>0){ p= text_ptr; *(++text_ptr)= tok_ptr; q= C_translate(); *(tok_ptr++)= 4 *10240+p-tok_start; app_str("\\PB{"); *(tok_ptr++)= 5 *10240+q-tok_start; {if(tok_ptr+2>tok_mem_end)stat_overflow("token"); *(tok_ptr++)= '}';}; if(next_control==248)bal= copy_comment(bal); else bal= 0; } *(tok_ptr++)= 137+6; (++scrap_ptr)->cat= 45;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(2+4 *(2))); *(++text_ptr)= tok_ptr;; /*:151*/ #line 2342 "weave.web" ; } else{ C_parse(0); } } } /*:150*//*174:*/ #line 2459 "weave.web" push_level(p) text_pointer p; { if(stack_ptr==stack_end)stat_overflow("stack"); if(stack_ptr>stack){ stack_ptr->end_field= cur_state.end_field; stack_ptr->tok_field= cur_state.tok_field; stack_ptr->mode_field= cur_state.mode_field; } stack_ptr++; #ifdef STAT if(stack_ptr>max_stack_ptr)max_stack_ptr= stack_ptr; #endif STAT cur_state.tok_field= *p;cur_state.end_field= *(p+1); } /*:174*//*175:*/ #line 2479 "weave.web" pop_level() { cur_state.end_field= (--stack_ptr)->end_field; cur_state.tok_field= stack_ptr->tok_field;cur_state.mode_field= stack_ptr->mode_field; } /*:175*//*177:*/ #line 2499 "weave.web" eight_bits get_output() { sixteen_bits a; restart:while(cur_state.tok_field==cur_state.end_field)pop_level(); a= *(cur_state.tok_field++); if(a>=0400){ cur_name= a%10240+name_dir; switch(a/10240){ case 2:return(0201); case 3:return(0200); case 4:push_level(a%10240+tok_start);goto restart; case 5:push_level(a%10240+tok_start);cur_state.mode_field= 0;goto restart; default:return(200); } } return(a); } /*:177*//*178:*/ #line 2535 "weave.web" output_C() { token_pointer save_tok_ptr; text_pointer save_text_ptr; sixteen_bits save_next_control; text_pointer p; save_tok_ptr= tok_ptr; save_text_ptr= text_ptr; save_next_control= next_control; next_control= 248; p= C_translate(); *(tok_ptr++)= 5 *10240+p-tok_start; out_str("\\PB{"); make_output(); {if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= '}';}; #ifdef STAT if(text_ptr>max_text_ptr)max_text_ptr= text_ptr; if(tok_ptr>max_tok_ptr)max_tok_ptr= tok_ptr; #endif STAT text_ptr= save_text_ptr;tok_ptr= save_tok_ptr; next_control= save_next_control; } /*:178*//*179:*/ #line 2562 "weave.web" make_output() { eight_bits a, b; int c; ASCII *k, *k_limit; ASCII *j; ASCII delim; ASCII *save_loc, *save_limit; name_pointer cur_mod_name; boolean save_mode; *(tok_ptr++)= 137+7+1; *(++text_ptr)= tok_ptr;push_level(text_ptr-1); while(1){ a= get_output(); reswitch:switch(a){ case 137+7+1:return; case 200:case 0201:/*180:*/ #line 2610 "weave.web" {if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= '\\';}; if(a==200){ if(cur_name->dummy.Ilk==4&&!doing_format){ /*181:*/ #line 2633 "weave.web" { char *j; for(j= cur_name->byte_start;j<(cur_name+1)->byte_start;j++){ switch( *j){ case'_':case'^':case'$':case'#': case'@':case'%':case'|':case'~': case'&':{if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= 'x';};break; default:{if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= *j;}; } } } /*:181*/ #line 2614 "weave.web" break; } if(((cur_name+1)->byte_start-(cur_name)->byte_start)==1){if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= '|';} else{if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= '\\';} }else{ {if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= '&';} } out_name(cur_name); /*:180*/ #line 2579 "weave.web" ;break; case 0200:/*186:*/ #line 2709 "weave.web" { boolean is_file; cur_xref= (xref_pointer)cur_name->equiv_or_xref; is_file= cur_xref->num>=2 *10240; out_str((is_file?"\\XF":"\\X")); if(cur_xref->num>=10240){ out_mod(cur_xref->num-(is_file?2 *10240:10240)); if(phase==3){ cur_xref= cur_xref->xlink; while(cur_xref->num>=10240){ out_str(", "); out_mod(cur_xref->num-(is_file?2 *10240:10240)); cur_xref= cur_xref->xlink; } } } else{if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= '0';}; {if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= ':';};/*187:*/ #line 2733 "weave.web" k= cur_name->byte_start;k_limit= (cur_name+1)->byte_start; cur_mod_name= cur_name; while(kbyte_start,(((cur_mod_name)+1)->byte_start-((cur_mod_name))->byte_start));printf("> ");history= 2; } /*:188*/ #line 2738 "weave.web" if(is_file) switch(b){ case' ':case'\\':case'#':case'%':case'$':case'^': case'{':case'}':case'~':case'&':case'_': {if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= '\\';}; default:{if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= b;}; } else if(b!=124){if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= b;} else{ /*189:*/ #line 2768 "weave.web" j= limit+1; *j= 124;delim= 0; while(1){ if(k>=k_limit){ printf("\n! C text in section name didn't end: <"); fflush(stdout),write(1,(cur_mod_name)->byte_start,(((cur_mod_name)+1)->byte_start-((cur_mod_name))->byte_start));printf("> ");history= 2;break; } b= *(k++); if(b==64)/*190:*/ #line 2790 "weave.web" { if(j>buffer+500-4)stat_overflow("buffer"); *(++j)= 64; *(++j)= *(k++); } /*:190*/ #line 2777 "weave.web" else{ if(b=='\''||b=='"') if(delim==0)delim= b; else if(delim==b)delim= 0; if(b!=124||delim!=0){ if(j>buffer+500-3)stat_overflow("buffer"); *(++j)= b; } else break; } } /*:189*/ #line 2748 "weave.web" save_loc= loc;save_limit= limit;loc= limit+2;limit= j+1; *limit= 124;output_C(); loc= save_loc;limit= save_limit; } } /*:187*/ #line 2728 "weave.web" ; out_str((is_file?"\\XF":"\\X")); } /*:186*/ #line 2580 "weave.web" ;break; case 133:case 134:case 135: /*182:*/ #line 2649 "weave.web" if(a==133)out_str("\\mathbin{"); else if(a==134)out_str("\\mathrel{"); else out_str("\\mathop{"); /*:182*/ #line 2582 "weave.web" ;break; case 137:c= 0;while((a= get_output())>=137+1&&a<=137+7){ if(a==137+1)c++;if(a==137+2)c--; } /*185:*/ #line 2698 "weave.web" for(;c>0;c--)out_str("\\1"); for(;c<0;c++)out_str("\\2"); /*:185*/ #line 2586 "weave.web" ; goto reswitch; case 136:c= 0; while(((a= get_output())>=137+1||a==' ')&&a<=137+7){ if(a==137+1)c++;if(a==137+2)c--; } /*185:*/ #line 2698 "weave.web" for(;c>0;c--)out_str("\\1"); for(;c<0;c++)out_str("\\2"); /*:185*/ #line 2592 "weave.web" ; goto reswitch; case 137+1:case 137+2:case 137+3:case 137+4:case 137+5: case 137+6:case 137+7:/*183:*/ #line 2657 "weave.web" if(a<137+5){ if(cur_state.mode_field==1){ {if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= '\\';};{if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= a-137+'0';}; if(a==137+3){if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= get_output();}; } else if(a==137+3)b= get_output(); } else/*184:*/ #line 2673 "weave.web" { b= a;save_mode= cur_state.mode_field;c= 0; while(1){ a= get_output(); if(a==137||a==136){ /*185:*/ #line 2698 "weave.web" for(;c>0;c--)out_str("\\1"); for(;c<0;c++)out_str("\\2"); /*:185*/ #line 2678 "weave.web" ; goto reswitch; } if((a!=' '&&a<137+1)||a==137+4||a>137+7){ if(save_mode==1){ if(out_ptr>out_buf+3&&strncmp(out_ptr-3,"\\Y\\P",4)==0) goto reswitch; /*185:*/ #line 2698 "weave.web" for(;c>0;c--)out_str("\\1"); for(;c<0;c++)out_str("\\2"); /*:185*/ #line 2685 "weave.web" ; {if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= '\\';};{if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= b-137+'0';}; if(a!=137+7+1)finish_line(); } else if(a!=137+7+1&&cur_state.mode_field==0){if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= ' ';}; goto reswitch; } if(a==137+1)c++; else if(a==137+2)c--; else if(a>b)b= a; } } /*:184*/ #line 2665 "weave.web" /*:183*/ #line 2596 "weave.web" ;break; default:{if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= a;}; } } } /*:179*//*191:*/ #line 2802 "weave.web" phase_two(){ reset_input();printf("\nWriting the output file..."); module_count= 0;copy_limbo(); math_flag= 0; finish_line();flush_buffer(out_buf,0); while(!input_has_ended)/*193:*/ #line 2829 "weave.web" { module_count++; /*194:*/ #line 2846 "weave.web" if( *(loc-1)!='*')out_str("\\M"); else{ out_str("\\N"); printf("*%d",module_count);fflush(stdout); } out_mod(module_count);out_str(". "); /*:194*/ #line 2831 "weave.web" ; save_line= out_line;save_place= out_ptr; /*195:*/ #line 2859 "weave.web" do{ next_control= copy_TeX(); switch(next_control){ case 248: out_str("\\CD{}"); stack_ptr= stack;cur_state.mode_field= 1;output_C(); out_str("\\DC{}"); break; case 64:{if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= 64;};break; case 12:/*196:*/ #line 2882 "weave.web" { out_str("\\O{\\~"); while('0'<= *loc&& *loc<'8'){if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= *loc++;}; {if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= '}';}; } /*:196*/ #line 2868 "weave.web" ;break; case 13:/*197:*/ #line 2888 "weave.web" { out_str("\\O{\\^"); while(isxdigit( *loc)){ {if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= islower( *loc)?toupper( *loc): *loc;}; loc++; } {if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= '}';}; } /*:197*/ #line 2869 "weave.web" ;break; case 238:case(200+1):case(200+2):case(200+3): case 254:loc-= 2;next_control= get_next(1); if(next_control==238) err_print("! TeX string should be in C text only");break; case 241:case 242: case 244:case 245:case 246:case 240: case 247:err_print("! You can't do that in TeX text");break; } }while(next_control<251); /*:195*/ #line 2833 "weave.web" ; /*198:*/ #line 2902 "weave.web" if(next_control<=252){ if(save_line!=out_line||save_place!=out_ptr)out_str("\\Y");;save_line= out_line;save_place= out_ptr; } while(next_control<=252){ stack_ptr= stack;cur_state.mode_field= 1; if(next_control==252)/*200:*/ #line 2949 "weave.web" { *(tok_ptr++)= 137+4;app_str("\\D"); /*40:*/ #line 700 "weave.web" while((next_control= get_next(0))==10); /*:40*/ #line 2952 "weave.web" if(next_control!=200) err_print("! Improper macro definition"); else{ *(tok_ptr++)= '$'; *(tok_ptr++)= 10240+id_lookup(id_first,id_loc,0)-name_dir; /*202:*/ #line 2980 "weave.web" /*40:*/ #line 700 "weave.web" while((next_control= get_next(0))==10); /*:40*/ #line 2981 "weave.web" if(next_control==40){ *(tok_ptr++)= 40; do{ /*40:*/ #line 700 "weave.web" while((next_control= get_next(0))==10); /*:40*/ #line 2985 "weave.web" if(next_control==200){ *(tok_ptr++)= 10240+id_lookup(id_first,id_loc,0)-name_dir; /*40:*/ #line 700 "weave.web" while((next_control= get_next(0))==10); /*:40*/ #line 2988 "weave.web" }else{ err_print("! Improper macro definition"); /*201:*/ #line 2976 "weave.web" goto punt_the_definition; /*:201*/ #line 2991 "weave.web" ; } if(next_control==44||next_control==41) *(tok_ptr++)= next_control; }while(next_control==44); if(next_control!=41){ err_print("! Macro parameter list must end with )"); /*201:*/ #line 2976 "weave.web" goto punt_the_definition; /*:201*/ #line 2998 "weave.web" ; } /*40:*/ #line 700 "weave.web" while((next_control= get_next(0))==10); /*:40*/ #line 3000 "weave.web" } /*:202*/ #line 2961 "weave.web" ; if(next_control==61){ *(tok_ptr++)= '\\'; *(tok_ptr++)= 'S'; /*40:*/ #line 700 "weave.web" while((next_control= get_next(0))==10); /*:40*/ #line 2964 "weave.web" }else{ err_print("! Equals sign required in macro definition"); } punt_the_definition: *(tok_ptr++)= '$'; *(tok_ptr++)= 137+5; (++scrap_ptr)->cat= 45;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(2+4 *(2))); *(++text_ptr)= tok_ptr;; } } /*:200*/ #line 2908 "weave.web" else/*203:*/ #line 3007 "weave.web" { doing_format= 1; app_str("\\F");(++scrap_ptr)->cat= 45;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(2+4 *(2))); *(++text_ptr)= tok_ptr;; /*40:*/ #line 700 "weave.web" while((next_control= get_next(0))==10); /*:40*/ #line 3012 "weave.web" if(scrap_ptr!=scrap_info+1){ err_print("! This can't happen -- bad scrap_ptr in format definition"); printf("\n\tscrap_ptr-scrap_info==%d\n",scrap_ptr-scrap_info); } if(next_control==200){ *(tok_ptr++)= 10240+id_lookup(id_first,id_loc,0)-name_dir; app_str(" "); (++scrap_ptr)->cat= 45;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(2+4 *(2))); *(++text_ptr)= tok_ptr;; /*40:*/ #line 700 "weave.web" while((next_control= get_next(0))==10); /*:40*/ #line 3023 "weave.web" if(next_control==200){ *(tok_ptr++)= 10240+id_lookup(id_first,id_loc,0)-name_dir; *(tok_ptr++)= 10; (++scrap_ptr)->cat= 45;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(2+4 *(2))); *(++text_ptr)= tok_ptr;; /*40:*/ #line 700 "weave.web" while((next_control= get_next(0))==10); /*:40*/ #line 3028 "weave.web" } } if(scrap_ptr!=scrap_info+3)err_print("! Improper format definition"); } /*:203*/ #line 2909 "weave.web" ; outer_parse();finish_C(); doing_format= 0; } /*:198*/ #line 2834 "weave.web" ; /*205:*/ #line 3043 "weave.web" this_module= name_dir; if(next_control<=254){ if(save_line!=out_line||save_place!=out_ptr)out_str("\\Y");;stack_ptr= stack;cur_state.mode_field= 1; if(next_control==253)next_control= get_next(0); else{ this_module= cur_module; /*206:*/ #line 3060 "weave.web" do next_control= get_next(0); while(next_control=='+'); if(next_control!='=') err_print("! You need an = sign after the section name"); else next_control= get_next(0); if(out_ptr>out_buf+1&& *out_ptr=='Y'&& *(out_ptr-1)=='\\') *(tok_ptr++)= 137+4; *(tok_ptr++)= 3 *10240+this_module-name_dir; cur_xref= (xref_pointer)this_module->equiv_or_xref; app_str("${}"); if(cur_xref->num%10240!=module_count){ app_str("\\mathrel+"); this_module= name_dir; } app_str("\\S"); app_str("{}$"); *(tok_ptr++)= 137+6; /*166:*/ #line 363 "scraps.web" (++scrap_ptr)->cat= 8;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(2+4 *(2))); *(++text_ptr)= tok_ptr;; /*:166*/ #line 3081 "weave.web" /*:206*/ #line 3051 "weave.web" ; } while(next_control<=254){ outer_parse(); /*207:*/ #line 3084 "weave.web" if(next_control<254){ err_print("! You can't do that in C text"); next_control= get_next(1); } else if(next_control==254){ if(cur_module_char!='<'){ err_print("! You can't use a file like a module"); next_control= get_next(1); }else{ *(tok_ptr++)= 3 *10240+cur_module-name_dir; /*167:*/ #line 365 "scraps.web" (++scrap_ptr)->cat= 34;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(0+4 *(0))); *(++text_ptr)= tok_ptr;; /*:167*/ #line 3097 "weave.web" next_control= get_next(1); } } /*:207*/ #line 3055 "weave.web" ; } finish_C(); } /*:205*/ #line 2835 "weave.web" ; /*208:*/ #line 3104 "weave.web" if(this_module>name_dir){ /*210:*/ #line 3125 "weave.web" first_xref= (xref_pointer)this_module->equiv_or_xref; this_xref= first_xref->xlink; if(this_xref->num>10240){ mid_xref= this_xref;cur_xref= 0; do{ next_xref= this_xref->xlink;this_xref->xlink= cur_xref; cur_xref= this_xref;this_xref= next_xref; }while(this_xref->num>10240); first_xref->xlink= cur_xref; } else mid_xref= xmem; cur_xref= xmem; while(this_xref!=xmem){ next_xref= this_xref->xlink;this_xref->xlink= cur_xref; cur_xref= this_xref;this_xref= next_xref; } if(mid_xref>xmem)mid_xref->xlink= cur_xref; else first_xref->xlink= cur_xref; cur_xref= first_xref->xlink; /*:210*/ #line 3106 "weave.web" ; footnote(((((xref_pointer)this_module->equiv_or_xref)->num>=2 *10240) ?2 *10240:10240)); footnote(0); } /*:208*/ #line 2836 "weave.web" ; /*213:*/ #line 3194 "weave.web" out_str("\\fi");finish_line(); flush_buffer(out_buf,0); /*:213*/ #line 2837 "weave.web" ; } /*:193*/ #line 2807 "weave.web" ; } /*:191*//*199:*/ #line 2924 "weave.web" finish_C() { text_pointer p; out_str("\\P");{if(tok_ptr+2>tok_mem_end)stat_overflow("token"); *(tok_ptr++)= 137+6;};(++scrap_ptr)->cat= 45;scrap_ptr->trans_plus.Trans= text_ptr;scrap_ptr->mathness= ((eight_bits)(2+4 *(2))); *(++text_ptr)= tok_ptr;; p= translate(); *(tok_ptr++)= p-tok_start+4 *10240;make_output(); if(out_ptr>out_buf+1) if( *(out_ptr-1)=='\\') if( *out_ptr=='6')out_ptr-= 2; else if( *out_ptr=='7') *out_ptr= 'Y'; out_str("\\par");finish_line(); #ifdef STAT if(text_ptr>max_text_ptr)max_text_ptr= text_ptr; if(tok_ptr>max_tok_ptr)max_tok_ptr= tok_ptr; if(scrap_ptr>max_scr_ptr)max_scr_ptr= scrap_ptr; #endif STAT tok_ptr= tok_mem+1;text_ptr= tok_start+1;scrap_ptr= scrap_info; } /*:199*//*211:*/ #line 3156 "weave.web" footnote(flag) sixteen_bits flag; { xref_pointer q; if(cur_xref->num<=flag)return; finish_line();{if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= '\\';}; if(flag==0){if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= 'U';} else{if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= 'A';}; /*212:*/ #line 3176 "weave.web" q= cur_xref; if(q->xlink->num>flag){if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= 's';}; while(1){ out_mod(cur_xref->num-flag); cur_xref= cur_xref->xlink; if(cur_xref->num<=flag)break; if(cur_xref->xlink->num>flag)out_str(", "); else{ out_str("\\ET"); if(cur_xref!=q->xlink){if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= 's';} } } /*:212*/ #line 3168 "weave.web" ; {if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= '.';}; } /*:211*//*215:*/ #line 3210 "weave.web" phase_three(){ if(no_xref){ finish_line(); out_str("\\vfill\\end"); finish_line(); } else{ phase= 3;printf("\nWriting the index..."); if(change_exists){ finish_line();/*217:*/ #line 3241 "weave.web" { k_module= 0; while(!changed_module[++k_module]); out_str("\\ch "); out_mod(k_module); while(1){ while(!changed_module[++k_module]); out_str(", ");out_mod(k_module); if(k_module==module_count)break; } {if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= '.';}; } /*:217*/ #line 3219 "weave.web" ; } finish_line();out_str("\\inx");finish_line(); /*219:*/ #line 3273 "weave.web" { int c; for(c= 0;c<=127;c++)bucket[c]= NULL; for(h= hash;h<=hash_end;h++){ next_name= *h; while(next_name){ cur_name= next_name;next_name= cur_name->link; if(((xref_pointer)cur_name->equiv_or_xref)!=xmem){ c= (cur_name->byte_start)[0]; if(c<='Z'&&c>='A')c= c+040; blink[cur_name-name_dir]= bucket[c];bucket[c]= cur_name; } } } } /*:219*/ #line 3223 "weave.web" ; /*227:*/ #line 3361 "weave.web" scrap_ptr= scrap_info;unbucket(1); while(scrap_ptr>scrap_info){ cur_depth= scrap_ptr->cat; if(blink[scrap_ptr->trans_plus.Head-name_dir]==0||cur_depth==255) /*229:*/ #line 3391 "weave.web" { name_pointer tp; tp= id_lookup("TeX",NULL,4); tp->dummy.Ilk= 0; cur_name= scrap_ptr->trans_plus.Head; do{ out_str("\\:"); /*230:*/ #line 3411 "weave.web" switch(cur_name->dummy.Ilk){ case 0:if(((cur_name+1)->byte_start-(cur_name)->byte_start)==1)out_str("\\|"); else out_str("\\\\");break; case 1:break; case 2:out_str("\\9");break; case 3:out_str("\\.");break; case 4: out_str("$\\"); /*181:*/ #line 2633 "weave.web" { char *j; for(j= cur_name->byte_start;j<(cur_name+1)->byte_start;j++){ switch( *j){ case'_':case'^':case'$':case'#': case'@':case'%':case'|':case'~': case'&':{if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= 'x';};break; default:{if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= *j;}; } } } /*:181*/ #line 3421 "weave.web" out_str("$"); goto name_done; default:out_str("\\&"); } out_name(cur_name); name_done:; /*:230*/ #line 3402 "weave.web" ; /*231:*/ #line 3440 "weave.web" /*232:*/ #line 3455 "weave.web" this_xref= (xref_pointer)cur_name->equiv_or_xref;cur_xref= xmem; do{ next_xref= this_xref->xlink;this_xref->xlink= cur_xref; cur_xref= this_xref;this_xref= next_xref; }while(this_xref!=xmem); /*:232*/ #line 3441 "weave.web" ; do{ out_str(", ");cur_val= cur_xref->num; if(cur_val<10240)out_mod(cur_val); else{out_str("\\[");out_mod(cur_val%10240);{if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= ']';};} cur_xref= cur_xref->xlink; }while(cur_xref!=xmem); {if(out_ptr>=out_buf_end)break_out(); *(++out_ptr)= '.';};finish_line(); /*:231*/ #line 3403 "weave.web" ; cur_name= blink[cur_name-name_dir]; }while(cur_name); --scrap_ptr; } /*:229*/ #line 3366 "weave.web" else/*228:*/ #line 3370 "weave.web" { ASCII c; next_name= scrap_ptr->trans_plus.Head; do{ cur_name= next_name;next_name= blink[cur_name-name_dir]; cur_byte= cur_name->byte_start+cur_depth; if(cur_byte==(cur_name+1)->byte_start)c= 0; else{ c= *cur_byte; if(c<='Z'&&c>='A')c= c+040; } blink[cur_name-name_dir]= bucket[c];bucket[c]= cur_name; }while(next_name); --scrap_ptr;unbucket(cur_depth+1); } /*:228*/ #line 3367 "weave.web" ; } /*:227*/ #line 3224 "weave.web" ; out_str("\\fin");finish_line(); /*235:*/ #line 3488 "weave.web" do_file= (1==1); mod_print(name_dir->dummy.Rlink); do_file= (1==0); mod_print(name_dir->dummy.Rlink); /*:235*/ #line 3227 "weave.web" ; out_str("\\con");finish_line(); } printf("Done."); check_complete(); } /*:215*//*226:*/ #line 3345 "weave.web" unbucket(d) eight_bits d; { ASCII c; for(c= 100;c>=0;c--)if(bucket[collate[c]]){ if(scrap_ptr>=scrap_info_end)stat_overflow("sorting"); scrap_ptr++; #ifdef STAT if(scrap_ptr>max_sort_ptr)max_sort_ptr= scrap_ptr; #endif STAT if(c==0)scrap_ptr->cat= 255; else scrap_ptr->cat= d; scrap_ptr->trans_plus.Head= bucket[collate[c]];bucket[collate[c]]= NULL; } } /*:226*//*233:*/ #line 3466 "weave.web" mod_print(p) name_pointer p; { boolean is_file; if(p){ mod_print(p->link); cur_xref= (xref_pointer)p->equiv_or_xref; is_file= ((cur_xref->num)>=2 *10240); if((is_file&&do_file)||(!is_file&&!do_file)){ out_str("\\:"); tok_ptr= tok_mem+1;text_ptr= tok_start+1;scrap_ptr= scrap_info;stack_ptr= stack;cur_state.mode_field= 1; *(tok_ptr++)= p-name_dir+3 *10240;make_output(); footnote(0); finish_line(); } mod_print(p->dummy.Rlink); } } /*:233*//*237:*/ #line 3512 "weave.web" stat_overflow(s) char *s; { printf("\n! Sorry, capacity exceeded: %s",s); #ifdef STAT /*236:*/ #line 3496 "weave.web" printf( "\nMemory usage statistics: %d of %d names, %d of %d cross-references,\n", name_ptr-name_dir,name_dir_end-name_dir, xref_ptr-xmem,xmem_end-xmem); printf("\t %d of %d bytes;",byte_ptr-byte_mem,byte_mem_end-byte_mem); printf("\nParsing required %d of %d(%d) scraps, %d of %d(%d) texts,\n", max_scr_ptr-scrap_info,2000,2000-50, max_text_ptr-tok_start,4000,4000-50 ); printf("\t %d of %d(%d) tokens, %d of %d levels;\n", max_tok_ptr-tok_mem,20000,20000-50, max_stack_ptr-stack,stack_end-stack ); printf("\nSorting required %d levels\n",max_sort_ptr-scrap_info); /*:236*/ #line 3518 "weave.web" ; #endif STAT history= 3;wrap_up(); } /*:237*/