📄 sgmlmain.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 + -