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

📄 sgmlmain.h

📁 harvest是一个下载html网页得机器人
💻 H
字号:
/* SGMLMAIN: Main interface to SGML services.Preprocessor variable names are the only supported interfaceto data maintained by SGML.  They are defined in this file or in adl.h.*//* Return control block types (RCBTYPE) from calls to parser (SGML):   Names and strings follow the convention for the IPBs.*/enum sgmlevent {     SGMLEOD,			/* End of document. */     SGMLDAF,			/* Data found. */     SGMLSTG,			/* Start-tag found. */     SGMLETG,			/* End-tag found. */     SGMLREF,			/* Record end found. */     SGMLPIS,			/* Processing instruction (string). */     SGMLAPP			/* APPINFO (string) */};struct rcbdata {              /* Return control block: DAF EOD REF PIS APP. */     UNS contersw;            /* 1=context error; 2,4,8=data type; 0=not. */     UNS datalen;             /* Length of data or PI (0=single nonchar). */     UNCH *data;              /* Data, PI, single nonSGML, or NDATA ecb ptr. */};struct rcbtag {               /* Return control block for STG and ETG. */     UNS contersw;            /* 1=context error; 2=NET enabled; 0/0=not. */     UNS tagmin;              /* Minim: NONE NULL NET DATA; implied by S/ETAG */     UNCH *curgi;	      /* Start-tag (or end-tag) GI. */     union {          struct ad *al;      /* Start-tag: attribute list. */          UNCH *oldgi;        /* End-tag: resumed GI. */     } ru;     struct ad *lal;          /* Start-tag: link attribute list (UNUSED). */     UNS format;              /* Format class for default processing. */     struct etd *tagreal;     /* Dummy etd or ptr to GI that implied this tag.*/     int etictr;              /* Number of elements on stack with NET enabled.*/     UNCH *srmnm;             /* Current SHORTREF map name (NULL=#EMPTY). */};/* Accessors for rcbdata and rcbtag. *//* Datatype abbreviations: C=unsigned char  S=string  U=unsigned int L=4 bytes                           A=array  P=ptr to structure N=name (see sgmlcb.h)*//* Data control block fields: processing instructions (SGMLPIS).*/#define PDATA(d) ((d).data)            /*S  PI string. */#define PDATALEN(d) ((d).datalen)      /*U  Length of PI string. */#define PIESW(d) (((d).contersw & 4))  /*U  1=PIDATA entity returned. *//* Data control block fields: other data types.*/#define CDATA(d) ((d).data)            /*S  CDATA content string. */#define CDATALEN(d) ((d).datalen)      /*U  Length of CDATA content string. */#define CONTERSW(d) (((d).contersw &1))/*U  1=CDATA or TAG out of context. */#define CDESW(d) (((d).contersw & 2))  /*U  1=CDATA entity returned. */#define SDESW(d) (((d).contersw & 4))  /*U  1=SDATA entity returned. */#define NDESW(d) (((d).contersw & 8))  /*U  1=NDATA entity returned. */#define NEPTR(d) ((PNE)(d).data)       /*P  Ptr to NDATA control block. */#define MARKUP(d) ((d).data)           /*A  Markup delimiter strings. */#define DTYPELEN(d) ((d).datalen)      /*U  Length of doc type name +len+EOS. */#define DOCTYPE(d) ((d).data)          /*S  Document type name (with len+EOS). */#define ADATA(d) ((d).data)	       /*S  APPINFO */#define ADATALEN(d) ((d).datalen)      /*U  Length of APPINFO string.  *//* Tag control block fields.*/#define ALPTR(t) ((t).ru.al)           /*P  Ptr to SGML attribute list. */#define CURGI(t) ((t).curgi+1)         /*N  GI of started or ended element. */#define OLDGI(t) ((t).ru.oldgi)        /*S  GI of resumed element. */#define TAGMIN(t) (t).tagmin          /*U  Minimization for current tag. */#define TAGREAL(t) ((t).tagreal)      /*P  Dummy etd that implied this tag. */#define TAGRLNM(t) ((UNCH *)(t).tagreal)  /*P GI of tag that implied this tag.*/#define ETISW(t) (((t).contersw & 2))  /*U  1=NET delimiter enabled by ETI. */#define PEXSW(t) (((t).contersw & 4))  /*U  1=Element was plus exception. */#define MTYSW(t) (((t).contersw & 8))  /*U  1=Element is empty. */#define ETICTR(t) ((t).etictr)         /*U  Number of active NET delimiters. */#define SRMNM(t) ((t).srmnm)           /*S  Name of current SHORTREF map. */#define SRMCNT(t) ((t).contersw)       /*U  Number of SHORTREF maps defined. */#define FORMAT(t) ((t).format)         /*U  Format class.*//* These function names are chosen so as to be distinct in the first 6letters. *//* Initialize. */struct markup *sgmlset P((struct switches *));/* Cleanup and return capacity usage statistics. */VOID sgmlend P((struct sgmlcap *));/* Set document entity. */int sgmlsdoc P((UNIV));/* Get entity. */int sgmlgent P((UNCH *, PNE *, UNCH **));/* Mark an entity.  Return is non-zero if already marked.*/int sgmlment P((UNCH *));/* Get the next sgml event. */enum sgmlevent sgmlnext P((struct rcbdata *, struct rcbtag *));/* Get the error count. */int sgmlgcnterr P((void));/* Get the current location. */int sgmlloc P((unsigned long *, char **));/* Write out the SGML declaration. */VOID sgmlwrsd P((FILE *));/* Note subdocument capacity usage. */VOID sgmlsubcap P((long *));

⌨️ 快捷键说明

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