📄 pcbrf.c
字号:
static UNCH/* bit nmc nms re spc non ee eob rs and grpc grpo lit lita dtgc dtgo opt or pero plus rep rni seq refc */tk01 []={TK1 ,TK1 ,SP1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 , TK1 ,DG1 ,TK1 ,TK1 ,ER1 ,TK1 ,TK1 ,RN1 ,TK1 ,TK1 },/*tk1*/tk01a[]={INV_,INV_,NAS_,NOP_,NOP_,SYS_,EOF_,GET_,RS_ ,INV_,INV_,GRP_,INV_,INV_, INV_,GRP_,INV_,INV_,NOP_,INV_,INV_,NOP_,INV_,INV_},co01 []={TK1 ,TK1 ,TK1 ,CO1 ,CO1 ,CO1 ,CO1 ,CO1 ,CO1 ,TK1 ,SP1 ,TK1 ,TK1 ,TK1 , TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 },/*co1*/co01a[]={INV_,INV_,INV_,NOP_,NOP_,SYS_,EE_ ,GET_,RS_ ,AND ,GRPE,INV_,INV_,INV_, INV_,INV_,INV_,OR ,INV_,INV_,INV_,INV_,SEQ ,INV_},er01 []={TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,ER1 ,TK1 ,ER1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 , TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 },/*er1*/er01a[]={PCI_,PCI_,PER_,PCI_,PCI_,SYS_,PCI_,GET_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_, PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_},sp01 []={TK1 ,TK1 ,TK1 ,CO1 ,CO1 ,SP1 ,CO1 ,SP1 ,CO1 ,TK1 ,SP1 ,TK1 ,TK1 ,TK1 , TK1 ,TK1 ,CO1 ,TK1 ,TK1 ,CO1 ,CO1 ,TK1 ,TK1 ,TK1 },/*sp1*/sp01a[]={INV_,LEN_,LEN_,NOP_,NOP_,SYS_,EE_ ,GET_,RS_ ,AND ,GRPE,INV_,INV_,INV_, INV_,INV_,OPT ,OR ,INV_,REP ,OREP,INV_,SEQ ,LEN_},/* bit nmc nms spc spc non ee eob rs and grpc grpo lit lita dtgc dtgo opt or pero plus rep rni seq refc */rn01 []={TK1 ,TK1 ,CO1 ,TK1 ,TK1 ,RN1 ,TK1 ,RN1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 , TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 },/*rn1*/rn01a[]={PCI_,PCI_,RNS_,PCI_,PCI_,SYS_,PCI_,GET_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_, PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_},dg01 []={TK1 ,TK1 ,DN1 ,DG1 ,DG1 ,DG1 ,DG1 ,DG1 ,DG1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 , TK1 ,TK1 ,TK1 ,TK1 ,DR1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 },/*dg1*/dg01a[]={INV_,INV_,NAS_,NOP_,NOP_,SYS_,EOF_,GET_,RS_ ,INV_,INV_,INV_,INV_,INV_, INV_,INV_,INV_,INV_,NOP_,INV_,INV_,INV_,INV_,INV_},dn01 []={TK1 ,TK1 ,TK1 ,DN1 ,DN1 ,DN1 ,DN1 ,DN1 ,DN1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 , TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,DT1 ,TK1 },/*dn1*/dn01a[]={INV_,INV_,INV_,NOP_,NOP_,SYS_,EE_ ,GET_,RS_ ,INV_,INV_,INV_,INV_,INV_, INV_,INV_,INV_,INV_,INV_,INV_,INV_,INV_,DTAG,INV_},dt01 []={TK1 ,TK1 ,TK1 ,DT1 ,DT1 ,DT1 ,DT1 ,DT1 ,DT1 ,TK1 ,DT1 ,DT1 ,LI1 ,LA1 , SP1 ,TK1 ,TK1 ,DT1 ,DT1 ,TK1 ,TK1 ,TK1 ,DT1 ,TK1 },/*dt1*/dt01a[]={INV_,INV_,INV_,NOP_,NOP_,SYS_,EE_ ,GET_,RS_ ,INV_,NOP_,NOP_,NOP_,NOP_, GRPE,INV_,INV_,NOP_,NOP_,INV_,INV_,INV_,NOP_,INV_},/* bit nmc nms spc spc non ee eob rs and grpc grpo lit lita dtgc dtgo opt or pero plus rep rni seq refc */dr01 []={TK1 ,TK1 ,DG1 ,TK1 ,TK1 ,DR1 ,TK1 ,DR1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 , TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 },/*dr1*/dr01a[]={PCI_,PCI_,PER_,PCI_,PCI_,SYS_,PCI_,GET_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_, PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_},li01 []={LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,DT1 ,LI1 , LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,LI1 },/*li1*/li01a[]={NOP_,NOP_,NOP_,NOP_,NOP_,SYS_,EOF_,GET_,RS_ ,NOP_,NOP_,NOP_,NOP_,NOP_, NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_},la01 []={LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,DT1 , LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 },/*la1*/la01a[]={NOP_,NOP_,NOP_,NOP_,NOP_,SYS_,EOF_,GET_,RS_ ,NOP_,NOP_,NOP_,NOP_,NOP_, NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_},*grcmtab[] = {tk01, tk01a, co01, co01a, er01, er01a, sp01, sp01a, rn01, rn01a, dg01, dg01a, dn01, dn01a, dt01, dt01a, dr01, dr01a, li01, li01a, la01, la01a};struct parse pcbgrcm = {"GRCM", lexgrp, grcmtab, 0, 0, 0, 0};#undef TK1#undef CO1#undef ER1#undef SP1#undef RN1#undef DG1#undef DN1#undef DT1#undef DR1#undef LI1#undef LA1/* PCBGRCS: State and action table for content model suffix. If suffix occurs, process it. Otherwise, put character back for the next parse.*//* Symbols for state names (end with a number). */#define SP4 0 /* Suffix expected. */static UNCH/* bit nmc nms re spc non ee eob rs and grpc grpo lit lita dtgc dtgo opt or pero plus rep rni seq refc */sp04 []={SP4 ,SP4 ,SP4 ,SP4 ,SP4 ,SP4 ,SP4 ,SP4 ,SP4 ,SP4 ,SP4 ,SP4 ,SP4 ,SP4 , SP4 ,SP4 ,SP4 ,SP4 ,SP4 ,SP4 ,SP4 ,SP4 ,SP4 ,SP4 },/*sp4*/sp04a[]={RCR_,RCR_,RCR_,RCR_,RCR_,SYS_,EE_ ,GET_,RCR_,RCR_,RCR_,RCR_,RCR_,RCR_, RCR_,RCR_,OPT ,RCR_,RCR_,REP ,OREP,RCR_,RCR_,RCR_},*grcstab[] = {sp04, sp04a};struct parse pcbgrcs = {"GRCS", lexgrp, grcstab, 0, 0, 0, 0};#undef SP4/* PCBGRNT: State and action table for name token group parse. Groups cannot nest. Reserved names are not allowed. No suffixes or data tag pattern groups.*//* Symbols for state names (end with a number). */#define TK1 0 /* Token expected: name, #CHARS, data tag grp, model. */#define CO1 2 /* Connector between tokens expected. */#define ER1 4 /* PERO found when token was expected. */static UNCH/* bit nmc nms re spc non ee eob rs and grpc grpo lit lita dtgc dtgo opt or pero plus rep rni seq refc */tk02 []={TK1 ,CO1 ,CO1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 , TK1 ,TK1 ,TK1 ,TK1 ,ER1 ,TK1 ,TK1 ,TK1 ,TK1 ,CO1 },/*tk1*/tk02a[]={INV_,NMT_,NMT_,NOP_,NOP_,SYS_,EOF_,GET_,RS_ ,INV_,INV_,INV_,INV_,INV_, INV_,INV_,INV_,INV_,NOP_,INV_,INV_,INV_,INV_,NMT_},co02 []={TK1 ,TK1 ,TK1 ,CO1 ,CO1 ,CO1 ,CO1 ,CO1 ,CO1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 , TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 },/*co1*/co02a[]={INV_,INV_,INV_,NOP_,NOP_,SYS_,EE_ ,GET_,RS_ ,NOP_,GRPE,INV_,INV_,INV_, INV_,INV_,INV_,NOP_,INV_,INV_,INV_,INV_,NOP_,INV_},er02 []={TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,ER1 ,TK1 ,ER1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 , TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 },/*er1*/er02a[]={PCI_,PCI_,PER_,PCI_,PCI_,SYS_,PCI_,GET_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_, PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_},*grnttab[] = {tk02, tk02a, co02, co02a, er02, er02a};struct parse pcbgrnt = {"GRNT", lexgrp, grnttab, 0, 0, 0, 0};#undef TK1#undef CO1#undef ER1/* PCBGRNM: State and action table for name group parse. Groups cannot nest. Reserved names are not allowed. No suffixes or data tag pattern groups.*//* Symbols for state names (end with a number). */#define TK1 0 /* Token expected: name, #CHARS, data tag grp, model. */#define CO1 2 /* Connector between tokens expected. */#define ER1 4 /* PERO found when token was expected. */static UNCH/* bit nmc nms re spc non ee eob rs and grpc grpo lit lita dtgc dtgo opt or pero plus rep rni seq refc */tk03 []={TK1 ,TK1 ,CO1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 , TK1 ,TK1 ,TK1 ,TK1 ,ER1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 },/*tk1*/tk03a[]={INV_,INV_,NAS_,NOP_,NOP_,SYS_,EOF_,GET_,RS_ ,INV_,INV_,INV_,INV_,INV_, INV_,INV_,INV_,INV_,NOP_,INV_,INV_,INV_,INV_,INV_},co03 []={TK1 ,TK1 ,TK1 ,CO1 ,CO1 ,CO1 ,CO1 ,CO1 ,CO1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 , TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 },/*co1*/co03a[]={INV_,INV_,INV_,NOP_,NOP_,SYS_,EE_ ,GET_,RS_ ,NOP_,GRPE,INV_,INV_,INV_, INV_,INV_,INV_,NOP_,INV_,INV_,INV_,INV_,NOP_,INV_},er03 []={TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,ER1 ,TK1 ,ER1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 , TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 },/*er1*/er03a[]={PCI_,PCI_,PER_,PCI_,PCI_,SYS_,PCI_,GET_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_, PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_},*grnmtab[] = {tk03, tk03a, co03, co03a, er03, er03a};struct parse pcbgrnm = {"GRNM", lexgrp, grnmtab, 0, 0, 0, 0};#undef TK1#undef CO1#undef ER1/* PCBREF: State and action table to find the end of entity, parameter entity, and character references. The opening delimiter and name have already been found; the parse determines whether the tokenization of the name ended normally and processes the REFC.*//* Symbols for state names (end with a number). */#define ER5 0 /* Handle REFC or other entity reference termination. */#define ER6 2 /* Return to caller and reset state for next call. */static UNCH/* bit nmc nms re spc non ee eob rs and grpc grpo lit lita dtgc dtgo opt or pero plus rep rni seq refc */er05 []={ER5 ,ER6 ,ER6 ,ER6 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 , ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER6 },/*er5*/er05a[]={RCR_,LEN_,LEN_,NOP_,RCR_,SYS_,RCR_,GET_,RCR_,RCR_,RCR_,RCR_,RCR_,RCR_, RCR_,RCR_,RCR_,RCR_,RCR_,RCR_,RCR_,RCR_,RCR_,NOP_},er06 []={ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 , ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 },/*er6*/er06a[]={RCR_,RCR_,RCR_,RCR_,RCR_,RCR_,RCR_,RCR_,RCR_,RCR_,RCR_,RCR_,RCR_,RCR_, RCR_,RCR_,RCR_,RCR_,RCR_,RCR_,RCR_,RCR_,RCR_,RCR_},*reftab[]={er05, er05a, er06, er06a};struct parse pcbref = {"ENTREF", lexgrp, reftab, 0, 0, 0, 0};#undef ER5#undef ER6/*Use (typical) Name Ending Chsw References RS RE SEPParameter literal LITPC LIT/A OK Parm,Char RSM_ LAM_ LAM_ Data tag template NOSystem ID LITC LIT/A n/a none RSM_ LAM_ LAM_ Processing instruction PICAttribute value LITRV LIT/A NO Gen,Char RS_ FUN_ FUN_Minimum literal LITV LIT/A n/a none RS_ FUN_ MLE_*//* PCBLITP: Literal parse with parameter and character references; no function character translation.*//* Symbols for state names (end with a number). */#define DA0 0 /* Data in buffer. */#define ER0 2 /* ERO found. */#define CR0 4 /* CRO found (ER0, RNI). */#define PR0 6 /* PRO found (for PCBLITP). */static UNCH/* free num min nms spc non ee eob rs re sep cde nsc ero mdo msc mso pero rni tagc tago litc */da13 []={DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,ER0 , DA0 ,DA0 ,DA0 ,PR0 ,DA0 ,DA0 ,DA0 ,DA0 },/*da3*/da13a[]={MLA_,MLA_,MLA_,MLA_,MLA_,NON_,EE_ ,GET_,RSM_,MLA_,MLA_,MLA_,NSC_,NOP_, MLA_,MLA_,MLA_,NOP_,MLA_,MLA_,MLA_,TER_},er13 []={DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,ER0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 , DA0 ,DA0 ,DA0 ,DA0 ,CR0 ,DA0 ,DA0 ,DA0 },/*er3*/er13a[]={LPR_,LPR_,LPR_,LPR_,LPR_,LPR_,LPR_,GET_,LPR_,LPR_,LPR_,LPR_,LPR_,LPR_, LPR_,LPR_,LPR_,LPR_,NOP_,LPR_,LPR_,LPR_},cr13 []={DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,CR0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 , DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 },/*cr3*/cr13a[]={LP2_,CRN_,LP2_,CRA_,LP2_,LP2_,LP2_,GET_,LP2_,LP2_,LP2_,LP2_,LP2_,LP2_, LP2_,LP2_,LP2_,LP2_,LP2_,LP2_,LP2_,LP2_},pr13 []={DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,PR0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 , DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 },/*pr3*/pr13a[]={LPR_,LPR_,LPR_,PEX_,LPR_,LPR_,LPR_,GET_,LPR_,LPR_,LPR_,LPR_,LPR_,LPR_, LPR_,LPR_,LPR_,LPR_,LPR_,LPR_,LPR_,LPR_},*litptab[] = {da13, da13a, er13, er13a, cr13, cr13a, pr13, pr13a};struct parse pcblitp = {"LITP", lexlms, litptab, 0, 0, 0, 0};#undef DA0#undef ER0#undef CR0#undef PR0/* PCBLITC: Literal parse; no references; no function char translation. Used for character data (system data).*//* Symbols for state names (end with a number). */#define DA0 0 /* Data in buffer. */static UNCH/* free num min nms spc non ee eob rs re sep cde nsc ero mdo msc mso pero rni tagc tago litc */da2 []={DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 , DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 },/*da2*/da2a[]={MLA_,MLA_,MLA_,MLA_,MLA_,SYS_,EOF_,GET_,RSM_,MLA_,MLA_,MLA_,SYS_,MLA_, MLA_,MLA_,MLA_,MLA_,MLA_,MLA_,MLA_,TER_},*litctab[] = {da2, da2a};struct parse pcblitc = {"LITC", lexlms, litctab, 0, 0, 0, 0};#undef DA0/* PCBLITR: Attribute value parse; general and character references; function chars are translated.*//* Symbols for state names (end with a number). */#define DA0 0 /* Data in buffer. */#define ER0 2 /* ERO found. */#define CR0 4 /* CRO found (ER0, RNI). */static UNCH/* free num min nms spc non ee eob rs re sep cde nsc ero
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -