⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tokens.c

📁 harvest是一个下载html网页得机器人
💻 C
📖 第 1 页 / 共 2 页
字号:
/* * Definitions for each WP token. *  * */#include <stdio.h>#include "tokens.h"#include "charsets.h"extern int silent;int popEnvironment(state *st, struct WPToken *wpt, void *data){  extern void leave_environment(state *, int);  leave_environment(st,wpt->wp_intdata);  return 1;}int hardReturn(state *st, struct WPToken *wpt, void *data){  process0(st,HRt);  return 1;}int softPage(state *st, struct WPToken *wpt, void *data){  return 1;}int hardReturnSoftPage(state *st, struct WPToken *wpt, void *data){  hardReturn(st,wpt,data);  softPage(st,wpt,data);  return 1;}int ignoreByte(state *st, struct WPToken *wpt, void *data){  if(!silent) {    fprintf(stderr,"Ignoring byte [%02x]\n",wpt->wp_code);  }  return 1;}int ignoreFixed(state *st, struct WPToken *wpt, void *data){  if(!silent) {    fprintf(stderr,"Ignoring fixed [%02x]\n",wpt->wp_code);  }  return(1);}int ignoreVar(state *st, struct WPToken *wpt, void *data) {  struct VariableCode *vc=data;  if(!silent) {    fprintf(stderr,"Ignoring variable [%02x] sub [%02x] length: %d\n",	    vc->func, vc->subFunc, vc->len);  }  return 1;}int hardPage(state *st, struct WPToken *wpt, void *data){  process0(st,HPg);  return 1;}int softReturn(state *st, struct WPToken *wpt, void *data){  process0(st,SRt);  return 1;}int outputToken(state *st, struct WPToken *wpt, void *data){  process0(st,wpt->wp_intdata);  return 1;}int extendedChar(state *st, struct WPToken *wpt, void *data){  char *bytes=data;  int  char_code=bytes[1];  int  char_set=bytes[2];  if ( char_set >= 0 && char_set <= 8 )     fputs(isolatin1_chars[char_set][char_code],st->outfile);  else    fprintf( st->outfile, "<!-- CS=%d, CC=%d -->", char_set, char_code );  return 1;}  int attributeOn(state *st, struct WPToken *wpt, void *data){  char *bytes=data;  char attribute=bytes[1];  switch(attribute) {  case 0: /* extra large */    process0(st,ExtraLarge);    break;  case 1: /* very large */    process0(st,VeryLarge);    break;  case 2: /* large */    process0(st,Large);    break;  case 3: /* small */    process0(st,Small);    break;  case 4: /* fine */    process0(st,Fine);    break;  case 5: /* superscript */    process0(st,Sup);    break;  case 6: /* subscript */    process0(st,Sub);    break;  case 7: /* outline */    process0(st,Outline);    break;  case 8: /* italics */    process0(st,Italics);    break;  case 9: /* shadow */    process0(st,Shadow);    break;  case 10: /* redline */    process0(st,Red);    break;  case 11: /* double underline */    process0(st,DoubleUnd);    break;  case 12: /* bold */    process0(st,Bold);    break;  case 13: /* strikeout */    process0(st,Strike);    break;  case 14: /* underline */    process0(st,Und);    break;  case 15: /* small caps */    process0(st,SmallCaps);    break;  }  return 1;}  int attributeOff(state *st, struct WPToken *wpt, void *data){  char *bytes=data;  char attribute=bytes[1];  switch(attribute) {  case 0: /* extra large */    process0(st,eExtraLarge);    break;  case 1: /* very large */    process0(st,eVeryLarge);    break;  case 2: /* large */    process0(st,eLarge);    break;  case 3: /* small */    process0(st,eSmall);    break;  case 4: /* fine */    process0(st,eFine);    break;  case 5: /* superscript */    process0(st,eSup);    break;  case 6: /* subscript */    process0(st,eSub);    break;  case 7: /* outline */    process0(st,eOutline);    break;  case 8: /* italics */    process0(st,eItalics);    break;  case 9: /* shadow */    process0(st,eShadow);    break;  case 10: /* redline */    process0(st,eRed);    break;  case 11: /* double underline */    process0(st,eDoubleUnd);    break;  case 12: /* bold */    process0(st,eBold);    break;  case 13: /* strikeout */    process0(st,eStrike);    break;  case 14: /* underline */    process0(st,eUnd);    break;  case 15: /* small caps */    process0(st,eSmallCaps);    break;  }  return 1;}int endIndent(state *st, struct WPToken *wpt, void *data){  /* do nothing */  return 1;}int startIndent(state *st, struct WPToken *wpt, void *data){  char *bytes=data;    if(bytes[1]&1) {    /* left/right indent */    process0(st,DIndent);  }  else {    process0(st,Indent);  }  do {    if(process_token(st)==0) return 0;  } while(!(st->lastToken->wp_handleFunction==endIndent));  if(bytes[1]&1) {    /* left/right indent */    process0(st,eDIndent);  }  else {    process0(st,eIndent);  }  return 1;}struct WPToken wp_tokens[]={/* wp_type     wp_code  wp_intdata wp_strdata wp_size    wp_handleFunction */  {reserved,   0x00,    0,         NULL,      0,         NULL},  {singleByte, 0x01,    0,         NULL,      0,         ignoreByte},  {singleByte, 0x02,    0,         NULL,      0,         ignoreByte},  {singleByte, 0x03,    0,         NULL,      0,         ignoreByte},  {singleByte, 0x04,    0,         NULL,      0,         ignoreByte},  {singleByte, 0x05,    0,         NULL,      0,         ignoreByte},  {singleByte, 0x06,    0,         NULL,      0,         ignoreByte},

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -