static void flush_buffer(void) #line 484 "ctangle.w" { C_putc('\n'); if(cur_line%100==0&&show_progress){ printf("."); if(cur_line%500==0)printf("%d",cur_line); update_terminal; } cur_line++; }
void #line 236 "./cwebdir/ctang-w2c.ch" flush_buffer P1H(void) #line 484 "./cwebdir/ctangle.w" { C_putc('\n'); if(cur_line%100==0&&show_progress){ printf("."); if(cur_line%500==0)printf("%d",cur_line); update_terminal; } cur_line++; }
void #line 228 "./cwebdir/ctang-w2c.ch" get_output P1H(void) #line 394 "./cwebdir/ctangle.w" { sixteen_bits a; restart:if(stack_ptr==stack)return; if(cur_byte==cur_end){ cur_val= -((int)cur_section); pop_level(1); if(cur_val==0)goto restart; out_char(section_number);return; } a= *cur_byte++; if(out_state==verbatim&&a!=string&&a!=constant&&a!='\n') C_putc(a); else if(a<0200)out_char(a); else{ a= (a-0200)*0400+*cur_byte++; switch(a/024000){ case 0:cur_val= a;out_char(identifier);break; case 1:if(a==output_defs_flag)output_defs(); else/*33:*/ #line 423 "./cwebdir/ctangle.w" { a-= 024000; if((a+name_dir)->equiv!=(char*)text_info)push_level(a+name_dir); else if(a!=0){ printf("\n! Not present: <"); print_section_name(a+name_dir);err_print(">"); } goto restart; } /*:33*/ #line 412 "./cwebdir/ctangle.w" ; break; default:cur_val= a-050000;if(cur_val> 0)cur_section= cur_val; out_char(section_number); } } }
void #line 268 "./cwebdir/ctang-w2c.ch" output_defs P1H(void) #line 608 "./cwebdir/ctangle.w" { sixteen_bits a; push_level(NULL); for(cur_text= text_info+1;cur_text<text_ptr;cur_text++) if(cur_text->text_link==0){ cur_byte= cur_text->tok_start; cur_end= (cur_text+1)->tok_start; C_printf("%s","#define "); out_state= normal; protect= 1; while(cur_byte<cur_end){ a= *cur_byte++; if(cur_byte==cur_end&&a=='\n')break; if(out_state==verbatim&&a!=string&&a!=constant&&a!='\n') C_putc(a); else if(a<0200)out_char(a); else{ a= (a-0200)*0400+*cur_byte++; if(a<024000){ cur_val= a;out_char(identifier); } else if(a<050000){confusion("macro defs have strange char");} else{ cur_val= a-050000;cur_section= cur_val;out_char(section_number); } } } protect= 0; flush_buffer(); } pop_level(0); }
static void #line 285 "./cwebdir/ctang-w2c.ch" out_char P1C(eight_bits,cur_char) #line 655 "./cwebdir/ctangle.w" { char*j,*k; restart: switch(cur_char){ case'\n':if(protect&&out_state!=verbatim)C_putc(' '); if(protect||out_state==verbatim)C_putc('\\'); flush_buffer();if(out_state!=verbatim)out_state= normal;break; /*52:*/ #line 719 "./cwebdir/ctangle.w" case identifier: if(out_state==num_or_id)C_putc(' '); j= (cur_val+name_dir)->byte_start; k= (cur_val+name_dir+1)->byte_start; while(j<k){ if((unsigned char)(*j)<0200)C_putc(*j); else C_printf("%s",translit[(unsigned char)(*j)-0200]); j++; } out_state= num_or_id;break; /*:52*/ #line 662 "./cwebdir/ctangle.w" ; /*53:*/ #line 732 "./cwebdir/ctangle.w" case section_number: if(cur_val> 0)C_printf("/*%d:*/",cur_val); else if(cur_val<0)C_printf("/*:%d*/",-cur_val); else if(protect){ cur_byte+= 4; cur_char= '\n'; goto restart; }else{ sixteen_bits a; a= 0400**cur_byte++; a+= *cur_byte++; C_printf("\n#line %d \"",a); cur_val= *cur_byte++; cur_val= 0400*(cur_val-0200)+*cur_byte++; for(j= (cur_val+name_dir)->byte_start,k= (cur_val+name_dir+1)->byte_start; j<k;j++){ if(*j=='\\'||*j=='"')C_putc('\\'); C_putc(*j); } C_printf("%s","\"\n"); } break; /*:53*/ #line 663 "./cwebdir/ctangle.w" ; /*49:*/ #line 681 "./cwebdir/ctangle.w" case plus_plus:C_putc('+');C_putc('+');out_state= normal;break; case minus_minus:C_putc('-');C_putc('-');out_state= normal;break; case minus_gt:C_putc('-');C_putc('>');out_state= normal;break; case gt_gt:C_putc('>');C_putc('>');out_state= normal;break; case eq_eq:C_putc('=');C_putc('=');out_state= normal;break; case lt_lt:C_putc('<');C_putc('<');out_state= normal;break; case gt_eq:C_putc('>');C_putc('=');out_state= normal;break; case lt_eq:C_putc('<');C_putc('=');out_state= normal;break; case not_eq:C_putc('!');C_putc('=');out_state= normal;break; case and_and:C_putc('&');C_putc('&');out_state= normal;break; case or_or:C_putc('|');C_putc('|');out_state= normal;break; case dot_dot_dot:C_putc('.');C_putc('.');C_putc('.');out_state= normal; break; case colon_colon:C_putc(':');C_putc(':');out_state= normal;break; case period_ast:C_putc('.');C_putc('*');out_state= normal;break; case minus_gt_ast:C_putc('-');C_putc('>');C_putc('*');out_state= normal; break; /*:49*/ #line 664 "./cwebdir/ctangle.w" ; case'=':case'>':C_putc(cur_char);C_putc(' '); out_state= normal;break; case join:out_state= unbreakable;break; case constant:if(out_state==verbatim){ out_state= num_or_id;break; } if(out_state==num_or_id)C_putc(' ');out_state= verbatim;break; case string:if(out_state==verbatim)out_state= normal; else out_state= verbatim;break; case'/':C_putc('/');out_state= post_slash;break; case'*':if(out_state==post_slash)C_putc(' '); default:C_putc(cur_char);out_state= normal;break; } }