1 /* PCBRF: Parse tables for reference concrete syntax. 2 */ 3 #include "config.h" 4 #include "entity.h" /* Templates for entity control blocks. */ 5 #include "action.h" /* Action names for all parsing. */ 6 #include "synxtrn.h" /* Declarations for concrete syntax constants. */ 7 #include "adl.h" /* Definitions for attribute list processing. */ 8 /* PCBCONM: State and action table for content parse of mixed content. 9 Initial state assumes a start-tag was just processed. 10 */ 11 /* Symbols for state names (end with a number). */ 12 #define ET0 0 /* Markup found or buffer flushed; no data. */ 13 #define DA0 2 /* Data in buffer. */ 14 #define DA1 4 /* Data and space in buffer. */ 15 #define ER0 6 /* ERO found; start lookahead buffer. */ 16 #define CR0 8 /* CRO found (ERO, RNI). */ 17 #define RS0 10 /* RS found; possible SR 3-6. */ 18 #define ME0 12 /* MSC found; possible SR26. */ 19 #define ME1 14 /* MSC, MSC found. */ 20 #define ES0 16 /* TAGO found; start lookahead buffer. */ 21 #define EE0 18 /* End-tag start (TAGO,ETI); move to lookahead buffer. */ 22 #define NE0 20 /* End-tag start (TAGO,NET); process NET if not end-tag. */ 23 #define MD0 22 /* MDO found (TAGO, MDO[2]). */ 24 #define MC0 24 /* MDO, COM found. */ 25 #define SC0 26 /* COM found; possible SR19-20. */ 26 #define SP0 28 /* Space found; data pending; possible SR7 or SR9. */ 27 #define SR0 30 /* SPCR found; possible SR7 or SR9. */ 28 #define TB0 32 /* TAB found; possible SR7 or SR9. */ 29 30 int pcbcnet = ET0; /* PCBCONM: markup found or data buffer flushed.*/ 31 int pcbcnda = DA0; /* PCBCONM: data in buffer. */ 32 33 static UNCH 34 /* free nu nmc nms spc non ee eob rs re sep cde nsc ero 35 nmre com eti net lit spcr mdo msc mso pio rni tagc tago fce */ 36 et0 []={DA0 ,DA0 ,DA0 ,DA0 ,SP0 ,ET0 ,ET0 ,ET0 ,RS0 ,ET0 ,TB0 ,DA0 ,ET0 ,ER0 , 37 ET0 ,SC0 ,DA0 ,ET0 ,ET0 ,SR0 ,DA0 ,ME0 ,ET0 ,DA0 ,ET0 ,DA0 ,ES0 ,ET0 },/*et0*/ 38 et0a[]={DAS_,DAS_,DAS_,DAS_,DAS_,NON_,GET_,GET_,RSR_,SR2_,DAS_,DAS_,NSC_,LAS_, 39 REF_,NOP_,DAS_,NED_,SR10,DAS_,DAS_,NOP_,SR25,DAS_,SR11,DAS_,LAS_,FCE_}, 40 41 da0 []={DA0 ,DA0 ,DA0 ,DA0 ,DA1 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,DA0 ,ET0 ,ET0 , 42 ET0 ,ET0 ,DA0 ,ET0 ,ET0 ,ET0 ,DA0 ,ET0 ,ET0 ,DA0 ,DA0 ,DA0 ,ET0 ,ET0 },/*da0*/ 43 da0a[]={NOP_,NOP_,NOP_,NOP_,NOP_,DAF_,DAF_,DAF_,DAF_,DAF_,DAF_,NOP_,DAF_,DAF_, 44 DAF_,DAF_,NOP_,DAF_,DAF_,DAF_,NOP_,DAF_,DAF_,NOP_,NOP_,NOP_,DAF_,DAF_}, 45 46 da1 []={DA0 ,DA0 ,DA0 ,DA0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,DA0 ,ET0 ,ET0 , 47 ET0 ,ET0 ,DA0 ,ET0 ,ET0 ,ET0 ,DA0 ,ET0 ,ET0 ,DA0 ,DA0 ,DA0 ,ET0 ,ET0 },/*da1*/ 48 da1a[]={NOP_,NOP_,NOP_,NOP_,DAR_,DAF_,DAF_,DAR_,DAF_,DAR_,DAR_,NOP_,DAF_,DAF_, 49 DAF_,DAF_,NOP_,DAF_,DAF_,DAR_,NOP_,DAF_,DAF_,NOP_,NOP_,NOP_,DAF_,DAF_}, 50 51 er0 []={ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ER0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 , 52 ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,CR0 ,ET0 ,ET0 ,ET0 },/*er0*/ 53 er0a[]={LAF_,LAF_,LAF_,ER_ ,LAF_,LAF_,LAF_,GET_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_, 54 LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAM_,LAF_,LAF_,LAF_}, 55 56 /* free nu nmc nms spc non ee eob rs re sep cde nsc ero 57 nmre com eti net lit spcr mdo msc mso pio rni tagc tago fce */ 58 cr0 []={ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,CR0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 , 59 ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 },/*cr0*/ 60 cr0a[]={NLF_,CRN_,NLF_,CRA_,NLF_,NLF_,NLF_,GET_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_, 61 NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_}, 62 63 rs0 []={ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,RS0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 , 64 ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 },/*rs0*/ 65 rs0a[]={SR3_,SR3_,SR3_,SR3_,SR4_,SR3_,SR3_,GET_,SR3_,SR5_,SR4_,SR3_,SR3_,SR3_, 66 SR3_,SR3_,SR3_,NED_,SR3_,SR4_,SR3_,SR3_,SR3_,SR3_,SR3_,SR3_,SR3_,SR3_}, 67 68 me0 []={ET0, ET0, ET0, ET0, ET0 ,ET0, ET0, ME0, ET0 ,ET0 ,ET0 ,ET0, ET0, ET0, 69 ET0 ,ET0 ,ET0 ,ET0, ET0, ET0, ET0, ME1 ,ET0, ET0, ET0 ,ET0, ET0, ET0 },/*me0*/ 70 me0a[]={SR26,SR26,SR26,SR26,SR26,SR26,SR26,GET_,SR26,SR26,SR26,SR26,SR26,SR26, 71 SR26,SR26,SR26,SR26,SR26,SR26,SR26,NOP_,SR26,SR26,SR26,SR26,SR26,SR26}, 72 73 me1 []={ET0, ET0, ET0, ET0, ET0 ,ET0, ET0, ME1, ET0 ,ET0 ,ET0 ,ET0, ET0, ET0, 74 ET0 ,ET0 ,ET0 ,ET0, ET0, ET0, ET0, ET0 ,ET0, ET0, ET0 ,ET0, ET0, ET0 },/*me1*/ 75 me1a[]={RBR_,RBR_,RBR_,RBR_,RBR_,RBR_,RBR_,GET_,RBR_,RBR_,RBR_,RBR_,RBR_,RBR_, 76 RBR_,RBR_,RBR_,RBR_,RBR_,RBR_,RBR_,RBR_,RBR_,RBR_,RBR_,MSE_,RBR_,RBR_}, 77 78 /* free nu nmc nms spc non ee eob rs re sep cde nsc ero 79 nmre com eti net lit spcr mdo msc mso pio rni tagc tago fce */ 80 es0 []={ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ES0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 , 81 ET0 ,ET0 ,EE0 ,NE0 ,ET0 ,ET0 ,MD0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 },/*es0*/ 82 es0a[]={LAF_,LAF_,LAF_,STG_,LAF_,LAF_,LAF_,GET_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_, 83 LAF_,LAF_,LAM_,LAM_,LAF_,LAF_,LAM_,LAF_,LAF_,PIS_,LAF_,NST_,LAF_,LAF_}, 84 85 ee0 []={ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,EE0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 , 86 ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 },/*ee0*/ 87 ee0a[]={LAF_,LAF_,LAF_,ETG_,LAF_,LAF_,LAF_,GET_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_, 88 LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,NET_,LAF_,LAF_}, 89 90 ne0 []={ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,NE0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 , 91 ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 },/*ne0*/ 92 ne0a[]={NLF_,NLF_,NLF_,ETG_,NLF_,NLF_,NLF_,GET_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_, 93 NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NET_,NLF_,NLF_}, 94 95 /* free nu nmc nms spc non ee eob rs re sep cde nsc ero 96 nmre com eti net lit spcr mdo msc mso pio rni tagc tago fce */ 97 md0 []={ET0, ET0, ET0, ET0, ET0 ,ET0, ET0, MD0, ET0 ,ET0 ,ET0 ,ET0, ET0, ET0, 98 ET0 ,MC0 ,ET0 ,ET0, ET0, ET0, ET0, ET0 ,ET0, ET0, ET0 ,ET0, ET0, ET0 },/*md0*/ 99 md0a[]={LAF_,LAF_,LAF_,MD_ ,LAF_,LAF_,LAF_,GET_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_, 100 LAF_,LAM_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,MSS_,LAF_,LAF_,MDC_,LAF_,LAF_}, 101 102 mc0 []={ET0, ET0, ET0, ET0, ET0, ET0 ,ET0, MC0, ET0 ,ET0, ET0 ,ET0, ET0, ET0, 103 ET0 ,ET0 ,ET0 ,ET0, ET0, ET0, ET0, ET0 ,ET0 ,ET0 ,ET0 ,ET0, ET0, ET0 },/*mc0*/ 104 mc0a[]={NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,GET_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_, 105 NLF_,MDC_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_}, 106 107 sc0 []={ET0, ET0, ET0, ET0, ET0, ET0 ,ET0, SC0, ET0 ,ET0, ET0 ,ET0, ET0, ET0, 108 ET0 ,ET0 ,ET0 ,ET0, ET0, ET0, ET0, ET0 ,ET0 ,ET0 ,ET0 ,ET0, ET0, ET0 },/*sc0*/ 109 sc0a[]={SR19,SR19,SR19,SR19,SR19,SR19,SR19,GET_,SR19,SR19,SR19,SR19,SR19,SR19, 110 SR19,SR20,SR19,SR19,SR19,SR19,SR19,SR19,SR19,SR19,SR19,SR19,SR19,SR19}, 111 112 /* free nu nmc nms spc non ee eob rs re sep cde nsc ero 113 nmre com eti net lit spcr mdo msc mso pio rni tagc tago fce */ 114 sp0 []={DA0 ,DA0 ,DA0 ,DA0 ,ET0 ,ET0 ,ET0 ,SP0 ,ET0 ,ET0 ,ET0 ,DA0 ,DA0 ,ET0 , 115 ET0 ,ET0 ,DA0 ,ET0 ,ET0 ,ET0 ,DA0 ,ET0 ,ET0 ,DA0 ,DA0 ,DA0 ,ET0 ,ET0 },/*sp0*/ 116 sp0a[]={NOP_,NOP_,NOP_,NOP_,SR9_,DAF_,DAF_,GTR_,DAF_,SR7_,SR9_,NOP_,NOP_,DAF_, 117 DAF_,DAF_,NOP_,DAF_,DAF_,SR9_,NOP_,DAF_,DAF_,NOP_,NOP_,NOP_,DAF_,DAF_}, 118 119 sr0 []={ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,SR0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 , 120 ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 },/*sr0*/ 121 sr0a[]={SR8_,SR8_,SR8_,SR8_,SR9_,SR8_,SR8_,GET_,SR8_,SR7_,SR9_,SR8_,SR8_,SR8_, 122 SR8_,SR8_,SR8_,SR8_,SR8_,SR9_,SR8_,SR8_,SR8_,SR8_,SR8_,SR8_,SR8_,SR8_}, 123 124 tb0 []={ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,TB0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 , 125 ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 },/*tb0*/ 126 tb0a[]={SR1_,SR1_,SR1_,SR1_,SR9_,SR1_,SR1_,GET_,SR1_,SR7_,SR9_,SR1_,SR1_,SR1_, 127 SR1_,SR1_,SR1_,SR1_,SR1_,SR9_,SR1_,SR1_,SR1_,SR1_,SR1_,SR1_,SR1_,SR1_}, 128 129 /* free nu nmc nms spc non ee eob rs re sep cde nsc ero 130 nmre com eti net lit spcr mdo msc mso pio rni tagc tago fce */ 131 132 *conmtab[] = {et0, et0a, da0, da0a, da1, da1a, er0, er0a, cr0, cr0a, rs0, rs0a, 133 me0, me0a, me1, me1a, es0, es0a, ee0, ee0a, ne0, ne0a, md0, md0a, 134 mc0, mc0a, sc0, sc0a, sp0, sp0a, sr0, sr0a, tb0, tb0a }; 135 struct parse pcbconm = {"CONM", lexcnm, conmtab, 0, 0, 0, 0}; 136 #undef ET0 137 #undef DA0 138 #undef DA1 139 #undef ER0 140 #undef CR0 141 #undef RS0 142 #undef ME0 143 #undef ME1 144 #undef ES0 145 #undef EE0 146 #undef NE0 147 #undef MD0 148 #undef MC0 149 #undef SC0 150 #undef SP0 151 #undef SR0 152 #undef TB0 153 /* PCBCONE: State and action table for content parse of element content. 154 Initial state assumes a start-tag was just processed. 155 */ 156 /* Symbols for state names (end with a number). */ 157 #define ET2 0 /* Markup found. */ 158 #define ER2 2 /* ERO found; start lookahead buffer. */ 159 #define CR2 4 /* CRO found (ERO, RNI). */ 160 #define RS2 6 /* RS found; possible SR 3-6 if they were declared. */ 161 #define ME2 8 /* MSC found. */ 162 #define ME3 10 /* MSC, MSC found. */ 163 #define ES2 12 /* TAGO found; start lookahead buffer. */ 164 #define EE2 14 /* End-tag start (TAGO,ETI); move to lookahead buffer. */ 165 #define NE2 16 /* End-tag start (TAGO,NET); process NET if not end-tag. */ 166 #define MD2 18 /* MDO found (TAGO, MDO[2]). */ 167 #define MC2 20 /* MDO, COM found. */ 168 #define SC2 22 /* COM found; possible SR19-20 if they were mapped. */ 169 #define SP2 24 /* Space found; possible SR7 or SR9. */ 170 #define SR2 26 /* SPCR found; possible SR7 or SR9. */ 171 #define TB2 28 /* TAB found; possible SR7 or SR9. */ 172 173 static UNCH 174 /* free nu nmc nms spc non ee eob rs re sep cde nsc ero 175 nmre com eti net lit spcr mdo msc mso pio rni tagc tago fce */ 176 et2 []={ET2 ,ET2 ,ET2 ,ET2 ,SP2 ,ET2 ,ET2 ,ET2 ,RS2 ,ET2 ,TB2 ,ET2 ,ET2 ,ER2 , 177 ET2 ,SC2 ,ET2 ,ET2 ,ET2 ,SR2 ,ET2 ,ME2 ,ET2 ,ET2 ,ET2 ,ET2 ,ES2 ,ET2 },/*et2*/ 178 et2a[]={DCE_,DCE_,DCE_,DCE_,NOP_,DCE_,GET_,GET_,RS_ ,SR2_,NOP_,DCE_,DCE_,LAS_, 179 NOP_,NOP_,DCE_,NED_,SR10,NOP_,DCE_,NOP_,DCE_,DCE_,SR11,DCE_,LAS_,DCE_}, 180 181 er2 []={ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ER2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 , 182 ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,CR2 ,ET2 ,ET2 ,ET2 },/*er2*/ 183 er2a[]={LAF_,LAF_,LAF_,ER_ ,LAF_,LAF_,LAF_,GET_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_, 184 LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAM_,LAF_,LAF_,LAF_}, 185 186 cr2 []={ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,CR2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 , 187 ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 },/*cr2*/ 188 cr2a[]={NLF_,CRN_,NLF_,CRA_,NLF_,NLF_,NLF_,GET_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_, 189 NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_}, 190 191 rs2 []={ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,RS2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 , 192 ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 },/*rs2*/ 193 rs2a[]={SR3_,SR3_,SR3_,SR3_,SR4_,SR3_,SR3_,GET_,SR3_,SR5_,SR4_,SR3_,SR3_,SR3_, 194 SR3_,SR3_,SR3_,NED_,SR3_,SR4_,SR3_,SR3_,SR3_,SR3_,SR3_,SR3_,SR3_,SR3_}, 195 196 /* free nu nmc nms spc non ee eob rs re sep cde nsc ero 197 nmre com eti net lit spcr mdo msc mso pio rni tagc tago fce */ 198 me2 []={ET2, ET2, ET2, ET2, ET2 ,ET2, ET2, ME2, ET2 ,ET2 ,ET2 ,ET2, ET2, ET2, 199 ET2 ,ET2, ET2 ,ET2, ET2, ET2, ET2, ME3 ,ET2, ET2, ET2 ,ET2, ET2, ET2 },/*me2*/ 200 me2a[]={SR26,SR26,SR26,SR26,SR26,SR26,SR26,GET_,SR26,SR26,SR26,SR26,SR26,SR26, 201 SR26,SR26,SR26,SR26,SR26,SR26,SR26,NOP_,SR26,SR26,SR26,SR26,SR26,SR26}, 202 203 me3 []={ET2, ET2, ET2, ET2, ET2 ,ET2, ET2, ME3, ET2 ,ET2 ,ET2 ,ET2, ET2, ET2, 204 ET2 ,ET2, ET2 ,ET2, ET2, ET2, ET2, ET2 ,ET2, ET2, ET2 ,ET2, ET2, ET2 },/*me3*/ 205 me3a[]={RBR_,RBR_,RBR_,RBR_,RBR_,RBR_,RBR_,GET_,RBR_,RBR_,RBR_,RBR_,RBR_,RBR_, 206 RBR_,RBR_,RBR_,RBR_,RBR_,RBR_,RBR_,RBR_,RBR_,RBR_,RBR_,MSE_,RBR_,RBR_}, 207 208 es2 []={ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ES2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 , 209 ET2 ,ET2 ,EE2 ,NE2 ,ET2 ,ET2 ,MD2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 },/*es2*/ 210 es2a[]={LAF_,LAF_,LAF_,STG_,LAF_,LAF_,LAF_,GET_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_, 211 LAF_,LAF_,LAM_,LAM_,LAF_,LAF_,LAM_,LAF_,LAF_,PIS_,LAF_,NST_,LAF_,LAF_}, 212 213 ee2 []={ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,EE2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 , 214 ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 },/*ee2*/ 215 ee2a[]={LAF_,LAF_,LAF_,ETG_,LAF_,LAF_,LAF_,GET_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_, 216 LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,NET_,LAF_,LAF_}, 217 218 /* free nu nmc nms spc non ee eob rs re sep cde nsc ero 219 nmre com eti net lit spc mdo msc mso pio rni tagc tago fce */ 220 ne2 []={ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,NE2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 , 221 ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 },/*ne2*/ 222 ne2a[]={NLF_,NLF_,NLF_,ETG_,NLF_,NLF_,NLF_,GET_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_, 223 NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NET_,NLF_,NLF_}, 224 225 md2 []={ET2, ET2, ET2, ET2, ET2 ,ET2, ET2, MD2, ET2 ,ET2 ,ET2 ,ET2, ET2, ET2, 226 ET2 ,MC2, ET2 ,ET2, ET2, ET2, ET2, ET2 ,ET2, ET2, ET2 ,ET2, ET2, ET2 },/*md2*/ 227 md2a[]={LAF_,LAF_,LAF_,MD_ ,LAF_,LAF_,LAF_,GET_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_, 228 LAF_,LAM_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,MSS_,LAF_,LAF_,MDC_,LAF_,LAF_}, 229 230 mc2 []={ET2, ET2, ET2, ET2, ET2, ET2 ,ET2, MC2, ET2 ,ET2, ET2 ,ET2, ET2, ET2, 231 ET2 ,ET2, ET2 ,ET2, ET2, ET2, ET2, ET2 ,ET2 ,ET2 ,ET2 ,ET2, ET2, ET2 },/*mc2*/ 232 mc2a[]={NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,GET_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_, 233 NLF_,MDC_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_,NLF_}, 234 235 sc2 []={ET2, ET2, ET2, ET2, ET2, ET2 ,ET2, SC2, ET2 ,ET2, ET2 ,ET2, ET2, ET2, 236 ET2 ,ET2 ,ET2 ,ET2, ET2, ET2, ET2, ET2 ,ET2 ,ET2 ,ET2 ,ET2, ET2, ET2 },/*sc2*/ 237 sc2a[]={SR19,SR19,SR19,SR19,SR19,SR19,SR19,GET_,SR19,SR19,SR19,SR19,SR19,SR19, 238 SR19,SR20,SR19,SR19,SR19,SR19,SR19,SR19,SR19,SR19,SR19,SR19,SR19,SR19}, 239 240 /* free nu nmc nms spc non ee eob rs re sep cde nsc ero 241 nmre com eti net lit spc mdo msc mso pio rni tagc tago fce */ 242 sp2 []={ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,SP2 ,RS2 ,ET2 ,ET2 ,ET2 ,ET2 ,ER2 , 243 ET2 ,SC2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ME2 ,ET2 ,ET2 ,ET2 ,ET2 ,ES2 ,ET2 },/*sp2*/ 244 sp2a[]={DCE_,DCE_,DCE_,DCE_,SR9_,DCE_,GET_,GET_,RS_ ,SR7_,SR9_,DCE_,DCE_,LAS_, 245 NOP_,NOP_,DCE_,NED_,SR10,SR9_,DCE_,LAS_,DCE_,DCE_,SR11,DCE_,LAS_,DCE_}, 246 247 sr2 []={ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,SR2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 , 248 ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 },/*sr2*/ 249 sr2a[]={SR8_,SR8_,SR8_,SR8_,SR9_,SR8_,SR8_,GET_,SR8_,SR7_,SR9_,SR8_,SR8_,SR8_, 250 SR8_,SR8_,SR8_,SR8_,SR8_,SR9_,SR8_,SR8_,SR8_,SR8_,SR8_,SR8_,SR8_,SR8_}, 251 252 tb2 []={ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,TB2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 , 253 ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 },/*tb2*/ 254 tb2a[]={SR1_,SR1_,SR1_,SR1_,SR9_,SR1_,SR1_,GET_,SR1_,SR7_,SR9_,SR1_,SR1_,SR1_, 255 SR1_,SR1_,SR1_,SR1_,SR1_,SR9_,SR1_,SR1_,SR1_,SR1_,SR1_,SR1_,SR1_,SR1_}, 256 257 *conetab[] = {et2, et2a, er2, er2a, cr2, cr2a, rs2, rs2a, me2, me2a, me3, me3a, 258 es2, es2a, ee2, ee2a, ne2, ne2a, md2, md2a, mc2, mc2a, sc2, sc2a, 259 sp2, sp2a, sr2, sr2a, tb2, tb2a }; 260 struct parse pcbcone = {"CONE", lexcnm, conetab, 0, 0, 0, 0}; 261 #undef ET2 262 #undef ER2 263 #undef CR2 264 #undef RS2 265 #undef ME2 266 #undef ME3 267 #undef ES2 268 #undef EE2 269 #undef NE2 270 #undef MD2 271 #undef MC2 272 #undef SC2 273 #undef SP2 274 #undef SR2 275 #undef TB2 276 /* PCBCONR: State and action table for content parse of replaceable character 277 data. Initial state assumes a start-tag was just processed. 278 Only entity references and character references are recognized. 279 */ 280 /* Symbols for state names (end with a number). */ 281 #define ET4 0 /* Markup found or buffer flushed; no data. */ 282 #define DA4 2 /* Data in buffer. */ 283 #define ER4 4 /* ERO found; start lookahead buffer. */ 284 #define CR4 6 /* CRO found (ER2, RNI). */ 285 #define ES4 8 /* TAGO found; start lookahead buffer. */ 286 #define EE4 10 /* End-tag start (TAGO,ETI); move to lookahead buffer. */ 287 #define NE4 12 /* End-tag start (TAGO,NET); process NET if not end-tag. */ 288 289 static UNCH 290 /* free nu nmc nms spc non ee eob rs re sep cde nsc ero 291 nmre com eti net mdo msc mso pero pio rni tagc tago */ 292 et4 []={DA4 ,DA4 ,DA4 ,DA4 ,DA4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,DA4 ,DA4 ,ET4 ,ER4 , 293 ET4 ,DA4 ,DA4 ,ET4 ,DA4 ,DA4 ,DA4 ,DA4 ,DA4 ,DA4 ,DA4 ,ES4 },/*et4*/ 294 et4a[]={DAS_,DAS_,DAS_,DAS_,DAS_,NON_,EE_ ,GET_,RS_ ,REF_,DAS_,DAS_,NSC_,LAS_, 295 REF_,DAS_,DAS_,NED_,DAS_,DAS_,DAS_,DAS_,DAS_,DAS_,DAS_,LAS_}, 296 297 da4 []={DA4 ,DA4 ,DA4 ,DA4 ,DA4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,DA4 ,DA4 ,ET4 ,ET4 , 298 ET4 ,DA4 ,DA4 ,ET4 ,DA4 ,DA4 ,DA4 ,DA4 ,DA4 ,DA4 ,DA4 ,ET4 },/*da4*/ 299 da4a[]={NOP_,NOP_,NOP_,NOP_,NOP_,DAF_,DAF_,DAF_,DAF_,DAF_,NOP_,NOP_,DAF_,DAF_, 300 DAF_,NOP_,NOP_,DAF_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,DAF_}, 301 302 er4 []={ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ER4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 , 303 ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,CR4 ,ET4 ,ET4 },/*er4*/ 304 er4a[]={LAF_,LAF_,LAF_,ERX_,LAF_,LAF_,LAF_,GET_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_, 305 LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAM_,LAF_,LAF_}, 306 307 cr4 []={ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,CR4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 , 308 ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 },/*cr4*/ 309 cr4a[]={LAF_,CRN_,LAF_,CRA_,LAF_,LAF_,LAF_,GET_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_, 310 LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_}, 311 312 /* free nu nmc nms spc non ee eob rs re sep cde nsc ero 313 nmre com eti net mdo msc mso pero pio rni tagc tago */ 314 es4 []={ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ES4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 , 315 ET4 ,ET4 ,EE4 ,NE4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 },/*es4*/ 316 es4a[]={LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,GET_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_, 317 LAF_,LAF_,LAM_,LAM_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_}, 318 319 ee4 []={ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,EE4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 , 320 ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 },/*ee4*/ 321 ee4a[]={LAF_,LAF_,LAF_,ETC_,LAF_,LAF_,LAF_,GET_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_, 322 LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,NET_,LAF_}, 323 324 ne4 []={EE4 ,EE4 ,EE4 ,ET4 ,EE4 ,EE4 ,EE4 ,NE4 ,EE4 ,EE4 ,EE4 ,EE4 ,EE4 ,EE4 , 325 EE4 ,EE4 ,EE4 ,EE4 ,EE4 ,EE4 ,EE4 ,EE4 ,EE4 ,EE4 ,ET4 ,EE4 },/*ne4*/ 326 ne4a[]={RC2_,RC2_,RC2_,ETC_,RC2_,RC2_,RC2_,GET_,RC2_,RC2_,RC2_,RC2_,RC2_,RC2_, 327 RC2_,RC2_,RC2_,RC2_,RC2_,RC2_,RC2_,RC2_,RC2_,RC2_,NET_,RC2_}, 328 329 *conrtab[] = {et4, et4a, da4, da4a, er4, er4a, cr4, cr4a, 330 es4, es4a, ee4, ee4a, ne4, ne4a}; 331 struct parse pcbconr = {"CONR", lexcon, conrtab, 0, 0, 0, 0}; 332 #undef ET4 333 #undef DA4 334 #undef ER4 335 #undef CR4 336 #undef ES4 337 #undef EE4 338 #undef NE4 339 /* PCBCONC: State and action table for content parse of character data. 340 Initial state assumes a start-tag was just processed. 341 */ 342 /* Symbols for state names (end with a number). */ 343 #define ET6 0 /* Markup found or buffer flushed; no data. */ 344 #define DA6 2 /* Data in buffer. */ 345 #define ES6 4 /* TAGO found; start lookahead buffer. */ 346 #define EE6 6 /* End-tag start (TAGO,ETI); move to lookahead buffer. */ 347 #define NE6 8 /* End-tag start (TAGO,NET); process NET if not end-tag. */ 348 349 static UNCH 350 /* free nu nmc nms spc non ee eob rs re sep cde nsc ero 351 nmre com eti net mdo msc mso pero pio rni tagc tago */ 352 et6 []={DA6 ,DA6 ,DA6 ,DA6 ,DA6 ,ET6 ,ET6 ,ET6 ,ET6 ,ET6 ,DA6 ,DA6 ,ET6 ,DA6 , 353 ET6 ,DA6 ,DA6 ,ET6 ,DA6 ,DA6 ,DA6 ,DA6 ,DA6 ,DA6 ,DA6 ,ES6 },/*et6*/ 354 et6a[]={DAS_,DAS_,DAS_,DAS_,DAS_,NON_,EOF_,GET_,RS_ ,REF_,DAS_,DAS_,NSC_,DAS_, 355 REF_,DAS_,DAS_,NED_,DAS_,DAS_,DAS_,DAS_,DAS_,DAS_,DAS_,LAS_}, 356 357 da6 []={DA6 ,DA6 ,DA6 ,DA6 ,DA6 ,ET6 ,ET6 ,ET6 ,ET6 ,ET6 ,DA6 ,DA6 ,ET6 ,ET6 , 358 ET6 ,DA6 ,DA6 ,ET6 ,DA6 ,DA6 ,DA6 ,DA6 ,DA6 ,DA6 ,DA6 ,ET6 },/*da6*/ 359 da6a[]={NOP_,NOP_,NOP_,NOP_,NOP_,DAF_,DAF_,DAF_,DAF_,DAF_,NOP_,NOP_,DAF_,DAF_, 360 DAF_,NOP_,NOP_,DAF_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,DAF_}, 361 362 /* free nu nmc nms spc non ee eob rs re sep cde nsc ero 363 nmre com eti net mdo msc mso pero pio rni tagc tago */ 364 es6 []={ET6 ,ET6 ,ET6 ,ET6 ,ET6 ,ET6 ,ET6 ,ES6 ,ET6 ,ET6 ,ET6 ,ET6 ,ET6 ,ET6 , 365 ET6 ,ET6 ,EE6 ,NE6 ,ET6 ,ET6 ,ET6 ,ET6 ,ET6 ,ET6 ,ET6 ,ET6 },/*es6*/ 366 es6a[]={LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,GET_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_, 367 LAF_,LAF_,LAM_,LAM_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_}, 368 369 ee6 []={ET6 ,ET6 ,ET6 ,ET6 ,ET6 ,ET6 ,ET6 ,EE6 ,ET6 ,ET6 ,ET6 ,ET6 ,ET6 ,ET6 , 370 ET6 ,ET6 ,ET6 ,ET6 ,ET6 ,ET6 ,ET6 ,ET6 ,ET6 ,ET6 ,ET6 ,ET6 },/*ee6*/ 371 ee6a[]={LAF_,LAF_,LAF_,ETC_,LAF_,LAF_,LAF_,GET_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_, 372 LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,NET_,LAF_}, 373 374 ne6 []={EE6 ,EE6 ,EE6 ,ET6 ,EE6 ,EE6 ,EE6 ,NE6 ,EE6 ,EE6 ,EE6 ,EE6 ,EE6 ,EE6 , 375 EE6 ,EE6 ,EE6 ,EE6 ,EE6 ,EE6 ,EE6 ,EE6 ,EE6 ,EE6 ,ET6 ,EE6 },/*ne6*/ 376 ne6a[]={RC2_,RC2_,RC2_,ETC_,RC2_,RC2_,RC2_,GET_,RC2_,RC2_,RC2_,RC2_,RC2_,RC2_, 377 RC2_,RC2_,RC2_,RC2_,RC2_,RC2_,RC2_,RC2_,RC2_,RC2_,NET_,RC2_}, 378 379 *conctab[] = {et6, et6a, da6, da6a, es6, es6a, ee6, ee6a, ne6, ne6a}; 380 struct parse pcbconc = {"CONC", lexcon, conctab, 0, 0, 0, 0}; 381 #undef ET6 382 #undef DA6 383 #undef ES6 384 #undef EE6 385 #undef NE6 386 /* PCBPRO: State and action table for prolog parse. 387 Initial state assumes document just began. 388 */ 389 /* Symbols for state names (end with a number). */ 390 #define ET7 0 /* Markup found. */ 391 #define ES7 2 /* TAGO found; start lookahead buffer. */ 392 #define MD7 4 /* MDO found (TAGO, MDO[2]). */ 393 #define MC7 6 /* MDO, COM found. */ 394 395 static UNCH 396 /* free nu nmc nms spc non ee eob rs re sep cde nsc ero 397 nmre com eti net mdo msc mso pero pio rni tagc tago */ 398 et7 []={ET7 ,ET7 ,ET7 ,ET7 ,ET7 ,ET7 ,ET7 ,ET7 ,ET7 ,ET7 ,ET7 ,ET7 ,ET7 ,ET7 , 399 ET7 ,ET7 ,ET7 ,ET7 ,ET7 ,ET7 ,ET7 ,ET7 ,ET7 ,ET7 ,ET7 ,ES7 },/*et7*/ 400 et7a[]={DCE_,DCE_,DCE_,DCE_,NOP_,DCE_,EE_ ,GET_,RS_ ,NOP_,NOP_,DCE_,DCE_,DCE_, 401 DCE_,DCE_,DCE_,DCE_,DCE_,DCE_,DCE_,DCE_,DCE_,DCE_,DCE_,LAS_}, 402 403 es7 []={ET7 ,ET7 ,ET7 ,ET7 ,ET7 ,ET7 ,ET7 ,ES7 ,ET7 ,ET7 ,ET7 ,ET7 ,ET7 ,ET7 , 404 ET7 ,ET7 ,ET7 ,ET7 ,MD7 ,ET7 ,ET7 ,ET7 ,ET7 ,ET7 ,ET7 ,ET7 },/*es7*/ 405 es7a[]={PEP_,PEP_,PEP_,STE_,PEP_,PEP_,PEP_,GET_,PEP_,PEP_,PEP_,PEP_,PEP_,PEP_, 406 PEP_,PEP_,PEP_,PEP_,LAM_,PEP_,PEP_,PEP_,PIS_,PEP_,STE_,PEP_}, 407 408 md7 []={ET7, ET7, ET7, ET7, ET7 ,ET7, ET7, MD7, ET7 ,ET7 ,ET7 ,ET7, ET7, ET7, 409 ET7, MC7, ET7, ET7, ET7, ET7 ,ET7, ET7, ET7, ET7 ,ET7, ET7 },/*md7*/ 410 md7a[]={LAF_,LAF_,LAF_,DTD_,LAF_,LAF_,LAF_,GET_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_, 411 LAF_,LAM_,LAF_,LAF_,LAF_,LAF_,MSP_,LAF_,LAF_,LAF_,NOP_,LAF_}, 412 413 mc7 []={ET7, ET7, ET7, ET7, ET7, ET7 ,ET7, MC7, ET7 ,ET7, ET7 ,ET7, ET7, ET7, 414 ET7, ET7, ET7, ET7, ET7, ET7 ,ET7 ,ET7, ET7 ,ET7 ,ET7, ET7 },/*mc7*/ 415 mc7a[]={LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,GET_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_, 416 LAF_,MDC_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_}, 417 418 *protab[] = {et7, et7a, es7, es7a, md7, md7a, mc7, mc7a}; 419 struct parse pcbpro = {"PRO", lexcon, protab, 0, 0, 0, 0}; 420 #undef ET7 421 #undef ES7 422 #undef MD7 423 #undef MC7 424 /* PCBMDS: State and action table for parse of markup declaration subset. 425 Initial state assumes subset just began (MSO found). 426 */ 427 /* Symbols for state names (end with a number). */ 428 #define ET8 0 /* Markup found. */ 429 #define ER8 2 /* PERO found; start lookahead buffer. */ 430 #define ME8 4 /* MSC found. */ 431 #define ME9 6 /* MSC, MSC found. */ 432 #define ES8 8 /* TAGO found; start lookahead buffer. */ 433 #define MD8 10 /* MDO found (TAGO, MDO[2]). */ 434 #define MC8 12 /* MDO, CD found. */ 435 #define DC8 14 /* Data characters found (erroneously). */ 436 437 static UNCH 438 /* free nu nmc nms spc non ee eob rs re sep cde nsc ero 439 nmre com eti net mdo msc mso pero pio rni tagc tago */ 440 et8 []={DC8 ,DC8 ,DC8 ,DC8 ,ET8 ,DC8 ,ET8 ,ET8 ,ET8 ,ET8 ,ET8 ,DC8 ,DC8 ,DC8 , 441 DC8 ,DC8 ,DC8 ,DC8 ,DC8 ,ME8 ,DC8 ,ER8 ,DC8 ,DC8 ,DC8 ,ES8 },/*et8*/ 442 et8a[]={NOP_,NOP_,NOP_,NOP_,NOP_,SYS_,GET_,GET_,RS_ ,NOP_,NOP_,NOP_,SYS_,NOP_, 443 NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_}, 444 445 er8 []={DC8 ,DC8 ,DC8 ,ET8 ,DC8 ,DC8 ,DC8 ,ER8 ,DC8 ,DC8 ,DC8 ,DC8 ,DC8 ,DC8 , 446 DC8 ,DC8 ,DC8 ,DC8 ,DC8 ,DC8 ,DC8 ,DC8 ,DC8 ,DC8 ,DC8 ,DC8 },/*er8*/ 447 er8a[]={NOP_,NOP_,NOP_,PER_,NOP_,SYS_,NOP_,GET_,NOP_,NOP_,NOP_,NOP_,SYS_,NOP_, 448 NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_}, 449 450 me8 []={ET8, ET8, ET8, ET8, ET8 ,ET8, ET8, ME8, ET8 ,ET8 ,ET8 ,ET8, ET8, ET8, 451 ET8 ,ET8, ET8 ,ET8, ET8, ME9 ,ET8, ET8, ET8, ET8 ,ET8, ET8 },/*me8*/ 452 me8a[]={DTE_,DTE_,DTE_,DTE_,DTE_,DTE_,DTE_,GET_,DTE_,DTE_,DTE_,DTE_,DTE_,DTE_, 453 DTE_,DTE_,DTE_,DTE_,DTE_,NOP_,DTE_,DTE_,DTE_,DTE_,DTE_,DTE_}, 454 455 me9 []={DC8, DC8, DC8, DC8, DC8 ,DC8, DC8, ME9, DC8 ,DC8 ,DC8 ,DC8, DC8, DC8, 456 DC8 ,DC8, DC8 ,DC8, DC8, DC8 ,DC8, DC8, DC8, DC8 ,ET8, DC8 },/*me9*/ 457 me9a[]={NOP_,NOP_,NOP_,NOP_,NOP_,SYS_,NOP_,GET_,NOP_,NOP_,NOP_,NOP_,SYS_,NOP_, 458 NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,MSE_,NOP_}, 459 460 /* free nu nmc nms spc non ee eob rs re sep cde nsc ero 461 nmre com eti net mdo msc mso pero pio rni tagc tago */ 462 es8 []={DC8 ,DC8 ,DC8 ,DC8 ,DC8 ,DC8 ,DC8 ,ES8 ,DC8 ,DC8 ,DC8 ,DC8 ,DC8 ,DC8 , 463 DC8 ,DC8 ,DC8 ,DC8 ,MD8 ,DC8 ,DC8 ,DC8 ,ET8 ,DC8 ,DC8 ,DC8 },/*es8*/ 464 es8a[]={NOP_,NOP_,NOP_,NOP_,NOP_,SYS_,NOP_,GET_,NOP_,NOP_,NOP_,NOP_,SYS_,NOP_, 465 NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,PIS_,NOP_,NOP_,NOP_}, 466 467 md8 []={DC8, DC8, DC8, ET8, DC8 ,DC8, DC8, MD8, DC8 ,DC8 ,DC8 ,DC8, DC8, DC8, 468 DC8 ,MC8, DC8 ,DC8, DC8, DC8 ,ET8, DC8, DC8, DC8 ,ET8, DC8 },/*md8*/ 469 md8a[]={NOP_,NOP_,NOP_,MD_ ,NOP_,SYS_,NOP_,GET_,NOP_,NOP_,NOP_,NOP_,SYS_,NOP_, 470 NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,MSS_,NOP_,NOP_,NOP_,NOP_,NOP_}, 471 472 mc8 []={DC8, DC8, DC8, DC8, DC8, DC8 ,DC8, MC8, DC8 ,DC8, DC8 ,DC8, DC8, DC8, 473 DC8 ,ET8, DC8 ,DC8, DC8, DC8 ,DC8 ,DC8, DC8 ,DC8 ,DC8, DC8 },/*mc8*/ 474 mc8a[]={NOP_,NOP_,NOP_,NOP_,NOP_,SYS_,NOP_,GET_,NOP_,NOP_,NOP_,NOP_,SYS_,NOP_, 475 NOP_,MDC_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_}, 476 477 dc8 []={DC8 ,DC8 ,DC8 ,DC8 ,DC8 ,DC8 ,DC8 ,DC8 ,DC8 ,DC8 ,DC8 ,DC8 ,DC8 ,DC8 , 478 DC8 ,DC8 ,DC8 ,DC8 ,DC8 ,ET8 ,DC8 ,ET8 ,DC8 ,DC8 ,DC8 ,ET8 },/*dc8*/ 479 dc8a[]={NOP_,NOP_,NOP_,NOP_,NOP_,SYS_,GET_,GET_,RS_ ,NOP_,NOP_,NOP_,SYS_,NOP_, 480 NOP_,NOP_,NOP_,NOP_,NOP_,CIR_,NOP_,CIR_,NOP_,NOP_,NOP_,CIR_}, 481 482 *mdstab[] = {et8, et8a, er8, er8a, me8, me8a, me9, me9a, 483 es8, es8a, md8, md8a, mc8, mc8a, dc8, dc8a}; 484 struct parse pcbmds = {"MDS", lexcon, mdstab, 0, 0, 0, 0}; 485 #undef ET8 486 #undef ER8 487 #undef ME8 488 #undef ME9 489 #undef ES8 490 #undef MD8 491 #undef MC8 492 #undef DC8 493 /* PCBGRCM: State and action table for content model group. 494 Groups can nest. Reserved names are allowed. 495 Data tag token groups are allowed. 496 A non-reserved name or model group can have a suffix. 497 Columns are based on LEXGRP.C. 498 */ 499 /* Symbols for state names (end with a number). */ 500 #define TK1 0 /* Token expected: name, #CHARS, data tag grp, model. */ 501 #define CO1 2 /* Connector between tokens expected. */ 502 #define ER1 4 /* PERO found when token was expected. */ 503 #define SP1 6 /* Name or model: suffix or connector expected. */ 504 #define RN1 8 /* RNI found; possible #PCDATA. */ 505 #define DG1 10 /* Data tag: group begun; name expected. */ 506 #define DN1 12 /* Data tag: name found; SEQ connector expected. */ 507 #define DT1 14 /* Data tag: ignore template and pattern; MSC expected. */ 508 #define DR1 16 /* PERO found when data tag name was expected. */ 509 #define LI1 18 /* Literal in data tag group; search for LIT. */ 510 #define LA1 20 /* Literal in data tag group; search for LITA. */ 511 512 static UNCH 513 /* bit nmc nms re spc non ee eob rs and grpc grpo lit lita 514 dtgc dtgo opt or pero plus rep rni seq refc */ 515 tk01 []={TK1 ,TK1 ,SP1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 , 516 TK1 ,DG1 ,TK1 ,TK1 ,ER1 ,TK1 ,TK1 ,RN1 ,TK1 ,TK1 },/*tk1*/ 517 tk01a[]={INV_,INV_,NAS_,NOP_,NOP_,SYS_,EOF_,GET_,RS_ ,INV_,INV_,GRP_,INV_,INV_, 518 INV_,GRP_,INV_,INV_,NOP_,INV_,INV_,NOP_,INV_,INV_}, 519 520 co01 []={TK1 ,TK1 ,TK1 ,CO1 ,CO1 ,CO1 ,CO1 ,CO1 ,CO1 ,TK1 ,SP1 ,TK1 ,TK1 ,TK1 , 521 TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 },/*co1*/ 522 co01a[]={INV_,INV_,INV_,NOP_,NOP_,SYS_,EE_ ,GET_,RS_ ,AND ,GRPE,INV_,INV_,INV_, 523 INV_,INV_,INV_,OR ,INV_,INV_,INV_,INV_,SEQ ,INV_}, 524 525 er01 []={TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,ER1 ,TK1 ,ER1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 , 526 TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 },/*er1*/ 527 er01a[]={PCI_,PCI_,PER_,PCI_,PCI_,SYS_,PCI_,GET_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_, 528 PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_}, 529 530 sp01 []={TK1 ,TK1 ,TK1 ,CO1 ,CO1 ,SP1 ,CO1 ,SP1 ,CO1 ,TK1 ,SP1 ,TK1 ,TK1 ,TK1 , 531 TK1 ,TK1 ,CO1 ,TK1 ,TK1 ,CO1 ,CO1 ,TK1 ,TK1 ,TK1 },/*sp1*/ 532 sp01a[]={INV_,LEN_,LEN_,NOP_,NOP_,SYS_,EE_ ,GET_,RS_ ,AND ,GRPE,INV_,INV_,INV_, 533 INV_,INV_,OPT ,OR ,INV_,REP ,OREP,INV_,SEQ ,LEN_}, 534 535 /* bit nmc nms spc spc non ee eob rs and grpc grpo lit lita 536 dtgc dtgo opt or pero plus rep rni seq refc */ 537 rn01 []={TK1 ,TK1 ,CO1 ,TK1 ,TK1 ,RN1 ,TK1 ,RN1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 , 538 TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 },/*rn1*/ 539 rn01a[]={PCI_,PCI_,RNS_,PCI_,PCI_,SYS_,PCI_,GET_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_, 540 PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_}, 541 542 dg01 []={TK1 ,TK1 ,DN1 ,DG1 ,DG1 ,DG1 ,DG1 ,DG1 ,DG1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 , 543 TK1 ,TK1 ,TK1 ,TK1 ,DR1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 },/*dg1*/ 544 dg01a[]={INV_,INV_,NAS_,NOP_,NOP_,SYS_,EOF_,GET_,RS_ ,INV_,INV_,INV_,INV_,INV_, 545 INV_,INV_,INV_,INV_,NOP_,INV_,INV_,INV_,INV_,INV_}, 546 547 dn01 []={TK1 ,TK1 ,TK1 ,DN1 ,DN1 ,DN1 ,DN1 ,DN1 ,DN1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 , 548 TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,DT1 ,TK1 },/*dn1*/ 549 dn01a[]={INV_,INV_,INV_,NOP_,NOP_,SYS_,EE_ ,GET_,RS_ ,INV_,INV_,INV_,INV_,INV_, 550 INV_,INV_,INV_,INV_,INV_,INV_,INV_,INV_,DTAG,INV_}, 551 552 dt01 []={TK1 ,TK1 ,TK1 ,DT1 ,DT1 ,DT1 ,DT1 ,DT1 ,DT1 ,TK1 ,DT1 ,DT1 ,LI1 ,LA1 , 553 CO1 ,TK1 ,TK1 ,DT1 ,DT1 ,TK1 ,TK1 ,TK1 ,DT1 ,TK1 },/*dt1*/ 554 dt01a[]={INV_,INV_,INV_,NOP_,NOP_,SYS_,EE_ ,GET_,RS_ ,INV_,NOP_,NOP_,NOP_,NOP_, 555 GRPE,INV_,INV_,NOP_,NOP_,INV_,INV_,INV_,NOP_,INV_}, 556 557 /* bit nmc nms spc spc non ee eob rs and grpc grpo lit lita 558 dtgc dtgo opt or pero plus rep rni seq refc */ 559 dr01 []={TK1 ,TK1 ,DG1 ,TK1 ,TK1 ,DR1 ,TK1 ,DR1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 , 560 TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 },/*dr1*/ 561 dr01a[]={PCI_,PCI_,PER_,PCI_,PCI_,SYS_,PCI_,GET_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_, 562 PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_}, 563 564 li01 []={LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,DT1 ,LI1 , 565 LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,LI1 },/*li1*/ 566 li01a[]={NOP_,NOP_,NOP_,NOP_,NOP_,SYS_,EOF_,GET_,RS_ ,NOP_,NOP_,NOP_,NOP_,NOP_, 567 NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_}, 568 569 la01 []={LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,DT1 , 570 LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 },/*la1*/ 571 la01a[]={NOP_,NOP_,NOP_,NOP_,NOP_,SYS_,EOF_,GET_,RS_ ,NOP_,NOP_,NOP_,NOP_,NOP_, 572 NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_}, 573 574 *grcmtab[] = {tk01, tk01a, co01, co01a, er01, er01a, sp01, sp01a, 575 rn01, rn01a, dg01, dg01a, dn01, dn01a, dt01, dt01a, 576 dr01, dr01a, li01, li01a, la01, la01a}; 577 struct parse pcbgrcm = {"GRCM", lexgrp, grcmtab, 0, 0, 0, 0}; 578 #undef TK1 579 #undef CO1 580 #undef ER1 581 #undef SP1 582 #undef RN1 583 #undef DG1 584 #undef DN1 585 #undef DT1 586 #undef DR1 587 #undef LI1 588 #undef LA1 589 /* PCBGRCS: State and action table for content model suffix. 590 If suffix occurs, process it. Otherwise, put character 591 back for the next parse. 592 */ 593 /* Symbols for state names (end with a number). */ 594 #define SP4 0 /* Suffix expected. */ 595 596 static UNCH 597 /* bit nmc nms re spc non ee eob rs and grpc grpo lit lita 598 dtgc dtgo opt or pero plus rep rni seq refc */ 599 sp04 []={SP4 ,SP4 ,SP4 ,SP4 ,SP4 ,SP4 ,SP4 ,SP4 ,SP4 ,SP4 ,SP4 ,SP4 ,SP4 ,SP4 , 600 SP4 ,SP4 ,SP4 ,SP4 ,SP4 ,SP4 ,SP4 ,SP4 ,SP4 ,SP4 },/*sp4*/ 601 sp04a[]={RCR_,RCR_,RCR_,RCR_,RCR_,SYS_,EE_ ,GET_,RCR_,RCR_,RCR_,RCR_,RCR_,RCR_, 602 RCR_,RCR_,OPT ,RCR_,RCR_,REP ,OREP,RCR_,RCR_,RCR_}, 603 604 *grcstab[] = {sp04, sp04a}; 605 struct parse pcbgrcs = {"GRCS", lexgrp, grcstab, 0, 0, 0, 0}; 606 #undef SP4 607 /* PCBGRNT: State and action table for name token group parse. 608 Groups cannot nest. Reserved names are not allowed. 609 No suffixes or data tag pattern groups. 610 */ 611 /* Symbols for state names (end with a number). */ 612 #define TK1 0 /* Token expected: name, #CHARS, data tag grp, model. */ 613 #define CO1 2 /* Connector between tokens expected. */ 614 #define ER1 4 /* PERO found when token was expected. */ 615 616 static UNCH 617 /* bit nmc nms re spc non ee eob rs and grpc grpo lit lita 618 dtgc dtgo opt or pero plus rep rni seq refc */ 619 tk02 []={TK1 ,CO1 ,CO1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 , 620 TK1 ,TK1 ,TK1 ,TK1 ,ER1 ,TK1 ,TK1 ,TK1 ,TK1 ,CO1 },/*tk1*/ 621 tk02a[]={INV_,NMT_,NMT_,NOP_,NOP_,SYS_,EOF_,GET_,RS_ ,INV_,INV_,INV_,INV_,INV_, 622 INV_,INV_,INV_,INV_,NOP_,INV_,INV_,INV_,INV_,NMT_}, 623 624 co02 []={TK1 ,TK1 ,TK1 ,CO1 ,CO1 ,CO1 ,CO1 ,CO1 ,CO1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 , 625 TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 },/*co1*/ 626 co02a[]={INV_,INV_,INV_,NOP_,NOP_,SYS_,EE_ ,GET_,RS_ ,NOP_,GRPE,INV_,INV_,INV_, 627 INV_,INV_,INV_,NOP_,INV_,INV_,INV_,INV_,NOP_,INV_}, 628 629 er02 []={TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,ER1 ,TK1 ,ER1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 , 630 TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 },/*er1*/ 631 er02a[]={PCI_,PCI_,PER_,PCI_,PCI_,SYS_,PCI_,GET_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_, 632 PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_}, 633 634 *grnttab[] = {tk02, tk02a, co02, co02a, er02, er02a}; 635 struct parse pcbgrnt = {"GRNT", lexgrp, grnttab, 0, 0, 0, 0}; 636 #undef TK1 637 #undef CO1 638 #undef ER1 639 /* PCBGRNM: State and action table for name group parse. 640 Groups cannot nest. Reserved names are not allowed. 641 No suffixes or data tag pattern groups. 642 */ 643 /* Symbols for state names (end with a number). */ 644 #define TK1 0 /* Token expected: name, #CHARS, data tag grp, model. */ 645 #define CO1 2 /* Connector between tokens expected. */ 646 #define ER1 4 /* PERO found when token was expected. */ 647 648 static UNCH 649 /* bit nmc nms re spc non ee eob rs and grpc grpo lit lita 650 dtgc dtgo opt or pero plus rep rni seq refc */ 651 tk03 []={TK1 ,TK1 ,CO1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 , 652 TK1 ,TK1 ,TK1 ,TK1 ,ER1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 },/*tk1*/ 653 tk03a[]={INV_,INV_,NAS_,NOP_,NOP_,SYS_,EOF_,GET_,RS_ ,INV_,INV_,INV_,INV_,INV_, 654 INV_,INV_,INV_,INV_,NOP_,INV_,INV_,INV_,INV_,INV_}, 655 656 co03 []={TK1 ,TK1 ,TK1 ,CO1 ,CO1 ,CO1 ,CO1 ,CO1 ,CO1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 , 657 TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 },/*co1*/ 658 co03a[]={INV_,INV_,INV_,NOP_,NOP_,SYS_,EE_ ,GET_,RS_ ,NOP_,GRPE,INV_,INV_,INV_, 659 INV_,INV_,INV_,NOP_,INV_,INV_,INV_,INV_,NOP_,INV_}, 660 661 er03 []={TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,ER1 ,TK1 ,ER1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 , 662 TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 },/*er1*/ 663 er03a[]={PCI_,PCI_,PER_,PCI_,PCI_,SYS_,PCI_,GET_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_, 664 PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_}, 665 666 *grnmtab[] = {tk03, tk03a, co03, co03a, er03, er03a}; 667 struct parse pcbgrnm = {"GRNM", lexgrp, grnmtab, 0, 0, 0, 0}; 668 #undef TK1 669 #undef CO1 670 #undef ER1 671 /* PCBREF: State and action table to find the end of entity, parameter entity, 672 and character references. The opening delimiter and name 673 have already been found; the parse determines whether the 674 tokenization of the name ended normally and processes the REFC. 675 */ 676 /* Symbols for state names (end with a number). */ 677 #define ER5 0 /* Handle REFC or other entity reference termination. */ 678 #define ER6 2 /* Return to caller and reset state for next call. */ 679 680 static UNCH 681 /* bit nmc nms re spc non ee eob rs and grpc grpo lit lita 682 dtgc dtgo opt or pero plus rep rni seq refc */ 683 er05 []={ER5 ,ER6 ,ER6 ,ER6 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 , 684 ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER6 },/*er5*/ 685 er05a[]={RCR_,LEN_,LEN_,NOP_,RCR_,SYS_,RCR_,GET_,RCR_,RCR_,RCR_,RCR_,RCR_,RCR_, 686 RCR_,RCR_,RCR_,RCR_,RCR_,RCR_,RCR_,RCR_,RCR_,NOP_}, 687 688 er06 []={ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 , 689 ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 ,ER5 },/*er6*/ 690 er06a[]={RCR_,RCR_,RCR_,RCR_,RCR_,RCR_,RCR_,RCR_,RCR_,RCR_,RCR_,RCR_,RCR_,RCR_, 691 RCR_,RCR_,RCR_,RCR_,RCR_,RCR_,RCR_,RCR_,RCR_,RCR_}, 692 693 *reftab[]={er05, er05a, er06, er06a}; 694 struct parse pcbref = {"ENTREF", lexgrp, reftab, 0, 0, 0, 0}; 695 #undef ER5 696 #undef ER6 697 /* 698 Use (typical) Name Ending Chsw References RS RE SEP 699 Parameter literal LITPC LIT/A OK Parm,Char RSM_ LAM_ LAM_ 700 Data tag template NO 701 System ID LITC LIT/A n/a none RSM_ LAM_ LAM_ 702 Processing instruction PIC 703 Attribute value LITRV LIT/A NO Gen,Char RS_ FUN_ FUN_ 704 Minimum literal LITV LIT/A n/a none RS_ FUN_ MLE_ 705 */ 706 /* PCBLITP: Literal parse with parameter and character references; 707 no function character translation. 708 */ 709 /* Symbols for state names (end with a number). */ 710 #define DA0 0 /* Data in buffer. */ 711 #define ER0 2 /* ERO found. */ 712 #define CR0 4 /* CRO found (ER0, RNI). */ 713 #define PR0 6 /* PRO found (for PCBLITP). */ 714 715 static UNCH 716 /* free num min nms spc non ee eob rs re sep cde nsc ero 717 mdo msc mso pero rni tagc tago litc */ 718 da13 []={DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,ER0 , 719 DA0 ,DA0 ,DA0 ,PR0 ,DA0 ,DA0 ,DA0 ,DA0 },/*da3*/ 720 da13a[]={MLA_,MLA_,MLA_,MLA_,MLA_,NON_,EE_ ,GET_,RSM_,MLA_,MLA_,MLA_,NSC_,NOP_, 721 MLA_,MLA_,MLA_,NOP_,MLA_,MLA_,MLA_,TER_}, 722 723 er13 []={DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,ER0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 , 724 DA0 ,DA0 ,DA0 ,DA0 ,CR0 ,DA0 ,DA0 ,DA0 },/*er3*/ 725 er13a[]={LPR_,LPR_,LPR_,LPR_,LPR_,LPR_,LPR_,GET_,LPR_,LPR_,LPR_,LPR_,LPR_,LPR_, 726 LPR_,LPR_,LPR_,LPR_,NOP_,LPR_,LPR_,LPR_}, 727 728 cr13 []={DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,CR0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 , 729 DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 },/*cr3*/ 730 cr13a[]={LP2_,CRN_,LP2_,CRA_,LP2_,LP2_,LP2_,GET_,LP2_,LP2_,LP2_,LP2_,LP2_,LP2_, 731 LP2_,LP2_,LP2_,LP2_,LP2_,LP2_,LP2_,LP2_}, 732 733 pr13 []={DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,PR0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 , 734 DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 },/*pr3*/ 735 pr13a[]={LPR_,LPR_,LPR_,PEX_,LPR_,LPR_,LPR_,GET_,LPR_,LPR_,LPR_,LPR_,LPR_,LPR_, 736 LPR_,LPR_,LPR_,LPR_,LPR_,LPR_,LPR_,LPR_}, 737 738 *litptab[] = {da13, da13a, er13, er13a, cr13, cr13a, pr13, pr13a}; 739 struct parse pcblitp = {"LITP", lexlms, litptab, 0, 0, 0, 0}; 740 #undef DA0 741 #undef ER0 742 #undef CR0 743 #undef PR0 744 /* PCBLITC: Literal parse; no references; no function char translation. 745 Used for character data (system data). 746 */ 747 /* Symbols for state names (end with a number). */ 748 #define DA0 0 /* Data in buffer. */ 749 750 static UNCH 751 /* free num min nms spc non ee eob rs re sep cde nsc ero 752 mdo msc mso pero rni tagc tago litc */ 753 da2 []={DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 , 754 DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 },/*da2*/ 755 da2a[]={MLA_,MLA_,MLA_,MLA_,MLA_,SYS_,EOF_,GET_,RSM_,MLA_,MLA_,MLA_,SYS_,MLA_, 756 MLA_,MLA_,MLA_,MLA_,MLA_,MLA_,MLA_,TER_}, 757 758 *litctab[] = {da2, da2a}; 759 struct parse pcblitc = {"LITC", lexlms, litctab, 0, 0, 0, 0}; 760 #undef DA0 761 /* PCBLITR: Attribute value parse; general and character references; 762 function chars are translated. 763 */ 764 /* Symbols for state names (end with a number). */ 765 #define DA0 0 /* Data in buffer. */ 766 #define ER0 2 /* ERO found. */ 767 #define CR0 4 /* CRO found (ER0, RNI). */ 768 769 static UNCH 770 /* free num min nms spc non ee eob rs re sep cde nsc ero 771 mdo msc mso pero rni tagc tago litc */ 772 da11 []={DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,ER0 , 773 DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 },/*da1*/ 774 da11a[]={MLA_,MLA_,MLA_,MLA_,MLA_,NON_,EE_ ,GET_,RS_ ,FUN_,FUN_,MLA_,NSC_,NOP_, 775 MLA_,MLA_,MLA_,MLA_,MLA_,MLA_,MLA_,TER_}, 776 777 er11 []={DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,ER0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 , 778 DA0 ,DA0 ,DA0 ,DA0 ,CR0 ,DA0 ,DA0 ,DA0 },/*er1*/ 779 er11a[]={LPR_,LPR_,LPR_,ERX_,LPR_,LPR_,LPR_,GET_,LPR_,LPR_,LPR_,LPR_,LPR_,LPR_, 780 LPR_,LPR_,LPR_,LPR_,NOP_,LPR_,LPR_,LPR_}, 781 782 cr11 []={DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,CR0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 , 783 DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 },/*cr1*/ 784 cr11a[]={LP2_,CRN_,LP2_,CRA_,LP2_,LP2_,LP2_,GET_,LP2_,LP2_,LP2_,LP2_,LP2_,LP2_, 785 LP2_,LP2_,LP2_,LP2_,LP2_,LP2_,LP2_,LP2_}, 786 787 *litrtab[] = {da11, da11a, er11, er11a, cr11, cr11a}; 788 struct parse pcblitr = {"LITR", lexlms, litrtab, 0, 0, 0, 0}; 789 #undef DA0 790 #undef ER0 791 #undef CR0 792 /* PCBLITV: Literal parse; no references; RS ignored; RE/SPACE sequences 793 become single SPACE. Only minimum data characters allowed. 794 */ 795 /* Symbols for state names (end with a number). */ 796 #define LS0 0 /* Leading SPACE or RE found. */ 797 #define VA0 2 /* Valid character found. */ 798 #define SP0 4 /* SPACE/RE sequence begun. */ 799 800 static UNCH 801 /* free num min nms spc non ee eob rs re sep cde nsc ero 802 mdo msc mso pero rni tagc tago litc */ 803 ls10 []={VA0 ,VA0 ,VA0 ,VA0 ,LS0 ,VA0 ,LS0 ,LS0 ,LS0 ,LS0 ,LS0 ,VA0 ,VA0 ,VA0 , 804 VA0 ,VA0 ,VA0 ,VA0 ,VA0 ,VA0 ,VA0 ,LS0 },/*ls0*/ 805 ls10a[]={MLE_,MLA_,MLA_,MLA_,NOP_,SYS_,EOF_,GET_,RS_ ,NOP_,MLE_,SYS_,SYS_,MLE_, 806 MLE_,MLE_,MLE_,MLE_,MLE_,MLE_,MLE_,TER_}, 807 va10 []={VA0 ,VA0 ,VA0 ,VA0 ,SP0 ,VA0 ,VA0 ,VA0 ,VA0 ,SP0 ,SP0 ,VA0 ,VA0 ,VA0 , 808 VA0 ,VA0 ,VA0 ,VA0 ,VA0 ,VA0 ,VA0 ,LS0 },/*va0*/ 809 da10a[]={MLE_,MLA_,MLA_,MLA_,MLA_,SYS_,EOF_,GET_,RS_ ,FUN_,MLE_,SYS_,SYS_,MLE_, 810 MLE_,MLE_,MLE_,MLE_,MLE_,MLE_,MLE_,TER_}, 811 sp10 []={VA0 ,VA0 ,VA0 ,VA0 ,SP0 ,VA0 ,VA0 ,SP0 ,SP0 ,SP0 ,SP0 ,VA0 ,VA0 ,VA0 , 812 VA0 ,VA0 ,VA0 ,VA0 ,VA0 ,VA0 ,VA0 ,LS0 },/*sp0*/ 813 sp10a[]={MLE_,MLA_,MLA_,MLA_,NOP_,SYS_,EOF_,GET_,RS_ ,NOP_,MLE_,SYS_,SYS_,MLE_, 814 MLE_,MLE_,MLE_,MLE_,MLE_,MLE_,MLE_,RPR_}, 815 816 *litvtab[] = {ls10, ls10a, va10, da10a, sp10, sp10a}; 817 struct parse pcblitv = {"LITV", lexlms, litvtab, 0, 0, 0, 0}; 818 #undef LS0 819 #undef VA0 820 #undef SP0 821 /* PCBLITT: Tokenized attribute value parse. 822 */ 823 824 /* PCBLITT: Attribute value parse; general and character references; 825 function chars are translated. 826 */ 827 /* Symbols for state names (end with a number). */ 828 #define SP0 0 /* Ignore spaces */ 829 #define DA0 2 /* Data character */ 830 #define ER0 4 /* ERO found; ignore space */ 831 #define ER1 6 /* ERO found; don't ignore space */ 832 #define CR0 8 /* CRO found (ER0, RNI); ignore space */ 833 #define CR1 10 /* CR0 found; don't ignore space */ 834 835 int pcblittda = DA0; 836 837 static UNCH 838 /* free num min nms spc non ee eob rs re sep cde nsc ero 839 mdo msc mso pero rni tagc tago litc */ 840 841 sp14 []={DA0 ,DA0 ,DA0 ,DA0 ,SP0 ,DA0 ,DA0 ,SP0 ,SP0 ,SP0 ,SP0 ,DA0 ,DA0 ,ER0 , 842 DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 },/*sp0*/ 843 sp14a[]={MLA_,MLA_,MLA_,MLA_,NOP_,NON_,EE_ ,GET_,RS_ ,NOP_,NOP_,MLA_,NSC_,NOP_, 844 MLA_,MLA_,MLA_,MLA_,MLA_,MLA_,MLA_,TER_}, 845 846 da14 []={DA0 ,DA0 ,DA0 ,DA0 ,SP0 ,DA0 ,DA0 ,DA0 ,DA0 ,SP0 ,SP0 ,DA0 ,DA0 ,ER1 , 847 DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,SP0 },/*da0*/ 848 da14a[]={MLA_,MLA_,MLA_,MLA_,MLA_,NON_,EE_ ,GET_,RS_ ,FUN_,FUN_,MLA_,NSC_,NOP_, 849 MLA_,MLA_,MLA_,MLA_,MLA_,MLA_,MLA_,TER_}, 850 851 er14 []={DA0 ,DA0 ,DA0 ,SP0 ,DA0 ,DA0 ,DA0 ,ER0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 , 852 DA0 ,DA0 ,DA0 ,DA0 ,CR0 ,DA0 ,DA0 ,DA0 },/*er0*/ 853 er14a[]={LPR_,LPR_,LPR_,ERX_,LPR_,LPR_,LPR_,GET_,LPR_,LPR_,LPR_,LPR_,LPR_,LPR_, 854 LPR_,LPR_,LPR_,LPR_,NOP_,LPR_,LPR_,LPR_}, 855 856 er15 []={DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,ER1 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 , 857 DA0 ,DA0 ,DA0 ,DA0 ,CR1 ,DA0 ,DA0 ,DA0 },/*er1*/ 858 er15a[]={LPR_,LPR_,LPR_,ERX_,LPR_,LPR_,LPR_,GET_,LPR_,LPR_,LPR_,LPR_,LPR_,LPR_, 859 LPR_,LPR_,LPR_,LPR_,NOP_,LPR_,LPR_,LPR_}, 860 861 cr14 []={DA0 ,DA0 ,DA0 ,SP0 ,DA0 ,DA0 ,DA0 ,CR0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 , 862 DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 },/*cr0*/ 863 cr14a[]={LP2_,CRN_,LP2_,CRA_,LP2_,LP2_,LP2_,GET_,LP2_,LP2_,LP2_,LP2_,LP2_,LP2_, 864 LP2_,LP2_,LP2_,LP2_,LP2_,LP2_,LP2_,LP2_}, 865 866 cr15 []={DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,CR1 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 , 867 DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 },/*cr1*/ 868 cr15a[]={LP2_,CRN_,LP2_,CRA_,LP2_,LP2_,LP2_,GET_,LP2_,LP2_,LP2_,LP2_,LP2_,LP2_, 869 LP2_,LP2_,LP2_,LP2_,LP2_,LP2_,LP2_,LP2_}, 870 871 *litttab[] = {sp14, sp14a, da14, da14a, er14, er14a, er15, er15a, cr14, cr14a, 872 cr15, cr15a}; 873 struct parse pcblitt = {"LITT", lexlms, litttab, 0, 0, 0, 0}; 874 #undef SP0 875 #undef DA0 876 #undef ER0 877 #undef ER1 878 #undef CR0 879 #undef CR1 880 /* PCBMD: State and action table for markup declaration tokenization. 881 Columns are based on LEXMARK.C. 882 */ 883 /* Symbols for state names (end with a number). */ 884 #define SP1 0 /* Separator before token expected. */ 885 #define TK1 2 /* Token expected. */ 886 #define CM0 4 /* COM[1] found when sep expected: possible comment, MGRP.*/ 887 #define CM1 6 /* COM[1] found: possible comment, MGRP, or minus.*/ 888 #define CM2 8 /* COM[2] found; in comment. */ 889 #define CM3 10 /* Ending COM[1] found; end comment or continue it. */ 890 #define PR1 12 /* PERO found when token was expected. */ 891 #define PX1 14 /* PLUS found: PGRP or error. */ 892 #define RN1 16 /* RNI found; possible reserved name start. */ 893 894 int pcbmdtk = TK1; /* PCBMD: token expected. */ 895 896 static UNCH 897 /* bit nmc num nms spc non ee eob rs com eti grpo lit lita 898 dso dsc pero plus refc rni tagc tago vi */ 899 sp21 []={SP1 ,SP1 ,SP1 ,SP1 ,TK1 ,SP1 ,TK1 ,SP1 ,TK1 ,CM0 ,SP1 ,TK1 ,TK1 ,TK1 , 900 TK1 ,SP1 ,PR1 ,PX1 ,SP1 ,RN1 ,SP1 ,SP1 ,SP1 }, 901 sp21a[]={INV_,LEN_,LEN_,LEN_,NOP_,SYS_,EE_ ,GET_,RS_ ,NOP_,INV_,GRPS,LIT ,LITE, 902 MDS ,INV_,NOP_,NOP_,INV_,NOP_,EMD ,INV_,INV_}, 903 904 tk21 []={SP1 ,SP1 ,SP1 ,SP1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,CM1 ,SP1 ,TK1 ,TK1 ,TK1 , 905 TK1 ,SP1 ,PR1 ,PX1 ,SP1 ,RN1 ,SP1 ,SP1 ,SP1 }, 906 tk21a[]={INV_,NMT ,NUM ,NAS ,NOP_,SYS_,EE_ ,GET_,RS_ ,NOP_,INV_,GRPS,LIT ,LITE, 907 MDS ,INV_,NOP_,NOP_,INV_,NOP_,EMD ,INV_,INV_}, 908 909 /* bit nmc num nms spc non ee eob rs com eti grpo lit lita 910 dso dsc pero plus refc rni tagc tago vi */ 911 cm20 []={SP1 ,SP1 ,SP1 ,SP1 ,SP1 ,CM0 ,SP1 ,CM0 ,SP1 ,CM2 ,SP1 ,SP1 ,SP1 ,SP1 , 912 SP1 ,SP1 ,SP1 ,SP1 ,SP1 ,SP1 ,SP1 ,SP1 ,SP1 }, 913 cm20a[]={LNR_,LNR_,LNR_,LNR_,LNR_,SYS_,LNR_,GET_,LNR_,NOP_,LNR_,LNR_,LNR_,LNR_, 914 LNR_,LNR_,LNR_,LNR_,LNR_,LNR_,LNR_,LNR_,LNR_}, 915 916 cm21 []={TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,CM1 ,TK1 ,CM1 ,TK1 ,CM2 ,TK1 ,TK1 ,TK1 ,TK1 , 917 TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 }, 918 cm21a[]={CDR ,CDR ,CDR ,CDR ,CDR ,SYS_,CDR ,GET_,CDR ,NOP_,CDR ,MGRP,CDR ,CDR , 919 CDR ,CDR ,CDR ,CDR ,CDR ,CDR ,CDR ,CDR ,CDR }, 920 921 cm22 []={CM2 ,CM2 ,CM2 ,CM2 ,CM2 ,CM2 ,TK1 ,CM2 ,CM2 ,CM3 ,CM2 ,CM2 ,CM2 ,CM2 , 922 CM2 ,CM2 ,CM2 ,CM2 ,CM2 ,CM2 ,CM2 ,CM2 ,CM2 }, 923 cm22a[]={NOP_,NOP_,NOP_,NOP_,NOP_,SYS_,EOF_,GET_,RS_ ,NOP_,NOP_,NOP_,NOP_,NOP_, 924 NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_}, 925 926 /* bit nmc num nms spc non ee eob rs com eti grpo lit lita 927 dso dsc pero plus refc rni tagc tago vi */ 928 cm23 []={CM2 ,CM2 ,CM2 ,CM2 ,CM2 ,CM3 ,TK1 ,CM3 ,CM2 ,TK1 ,CM2 ,CM2 ,CM2 ,CM2 , 929 CM2 ,CM2 ,CM2 ,CM2 ,CM2 ,CM2 ,CM2 ,CM2 ,CM2 }, 930 cm23a[]={NOP_,NOP_,NOP_,NOP_,NOP_,SYS_,EOF_,GET_,RS_ ,NOP_,NOP_,NOP_,NOP_,NOP_, 931 NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_}, 932 933 pr21 []={SP1 ,SP1 ,SP1 ,TK1 ,TK1 ,PR1 ,SP1 ,PR1 ,TK1 ,SP1 ,SP1 ,SP1 ,SP1 ,SP1 , 934 SP1 ,SP1 ,SP1 ,SP1 ,SP1 ,TK1 ,SP1 ,SP1 ,SP1 }, 935 pr21a[]={PCI_,PCI_,PCI_,PER_,PEN ,SYS_,PENR,GET_,PEN ,PENR,PCI_,PCI_,PCI_,PCI_, 936 PCI_,PCI_,PENR,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_}, 937 938 px21 []={SP1 ,SP1 ,SP1 ,SP1 ,SP1 ,PX1 ,SP1 ,PX1 ,SP1 ,SP1 ,SP1 ,TK1 ,SP1 ,SP1 , 939 SP1 ,SP1 ,SP1 ,SP1 ,SP1 ,SP1 ,SP1 ,SP1 ,SP1 }, 940 px21a[]={PCI_,PCI_,PCI_,PCI_,PCI_,SYS_,PCI_,GET_,PCI_,PCI_,PCI_,PGRP,PCI_,PCI_, 941 PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_}, 942 943 rn21 []={TK1 ,TK1 ,TK1 ,SP1 ,TK1 ,RN1 ,TK1 ,RN1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 , 944 TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 }, 945 rn21a[]={PCI_,PCI_,PCI_,RNS ,PCI_,SYS_,PCI_,GET_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_, 946 PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_}, 947 948 *mdtab[] = {sp21, sp21a, tk21, tk21a, cm20, cm20a, cm21, cm21a, cm22, cm22a, 949 cm23, cm23a, pr21, pr21a, px21, px21a, rn21, rn21a}; 950 struct parse pcbmd = {"MD", lexmark, mdtab, 0, 0, 0, 0}; 951 #undef SP1 952 #undef TK1 953 #undef CM0 954 #undef CM1 955 #undef CM2 956 #undef CM3 957 #undef PR1 958 #undef PX1 959 #undef RN1 960 /* PCBMDC: State and action table for comment declaration. 961 */ 962 /* Symbols for state names (end with a number). */ 963 #define CD2 0 /* COM[2] found; in comment. */ 964 #define CD3 2 /* Ending COM[1] found; end comment or continue it. */ 965 #define EM1 4 /* Ending COM[2] found; start new comment or end. */ 966 #define CD1 6 /* COM[1] found; new comment or error. */ 967 968 static UNCH 969 /* bit nmc num nms spc non ee eob rs com eti grpo lit lita 970 dso dsc pero plus refc rni tagc tago vi */ 971 cd22 []={CD2 ,CD2 ,CD2 ,CD2 ,CD2 ,CD2 ,CD2 ,CD2 ,CD2 ,CD3 ,CD2 ,CD2 ,CD2 ,CD2 , 972 CD2 ,CD2 ,CD2 ,CD2 ,CD2 ,CD2 ,CD2 ,CD2 ,CD2 }, 973 cd22a[]={NOP_,NOP_,NOP_,NOP_,NOP_,SYS_,EOF_,GET_,RS_ ,NOP_,NOP_,NOP_,NOP_,NOP_, 974 NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_}, 975 976 cd23 []={CD2 ,CD2 ,CD2 ,CD2 ,CD2 ,CD3 ,CD2 ,CD3 ,CD2 ,EM1 ,CD2 ,CD2 ,CD2 ,CD2 , 977 CD2 ,CD2 ,CD2 ,CD2 ,CD2 ,CD2 ,CD2 ,CD2 ,CD2 }, 978 cd23a[]={NOP_,NOP_,NOP_,NOP_,NOP_,SYS_,EOF_,GET_,RS_ ,NOP_,NOP_,NOP_,NOP_,NOP_, 979 NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_}, 980 981 em21 []={CD2 ,CD2 ,CD2 ,CD2 ,EM1 ,EM1 ,CD2 ,EM1 ,EM1 ,CD1 ,CD2 ,CD2 ,CD2 ,CD2 , 982 CD2 ,CD2 ,CD2 ,CD2 ,CD2 ,CD2 ,CD2 ,CD2 ,CD2 }, 983 em21a[]={INV_,INV_,INV_,INV_,NOP_,SYS_,EOF_,GET_,RS_ ,NOP_,INV_,INV_,INV_,INV_, 984 INV_,INV_,INV_,INV_,INV_,INV_,EMD ,INV_,INV_}, 985 986 cd21 []={CD2 ,CD2 ,CD2 ,CD2 ,CD2 ,CD1 ,CD2 ,CD1 ,CD2 ,CD2 ,CD2 ,CD2 ,CD2 ,CD2 , 987 CD2 ,CD2 ,CD2 ,CD2 ,CD2 ,CD2 ,CD2 ,CD2 ,CD2 }, 988 cd21a[]={PCI_,PCI_,PCI_,PCI_,PCI_,SYS_,EOF_,GET_,PCI_,NOP_,PCI_,PCI_,PCI_,PCI_, 989 PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_,PCI_}, 990 991 *mdctab[] = {cd22, cd22a, cd23, cd23a, em21, em21a, cd21, cd21a}; 992 struct parse pcbmdc = {"MDC", lexmark, mdctab, 0, 0, 0, 0}; 993 #undef CD2 994 #undef CD3 995 #undef EM1 996 #undef CD1 997 /* PCBMDI: State and action table for ignoring markup declarations. 998 Literals are handled properly so a TAGC won't end the declaration. 999 An error is noted if the entity ends within a declaration that 1000 is being ignored. 1001 TO DO: Handle nested declaration sets. 1002 */ 1003 /* Symbols for state names (end with a number). */ 1004 #define NC1 0 /* Not in a comment; TAGC ends declaration. */ 1005 #define IC1 2 /* COM[1] found; possible comment. */ 1006 #define IC2 4 /* COM[2] found; in comment. */ 1007 #define IC3 6 /* Ending COM[1] found; end comment or continue it. */ 1008 #define LI1 8 /* Literal parameter; search for LIT. */ 1009 #define LA1 10 /* Literal parameter; search for LITA. */ 1010 1011 static UNCH 1012 /* bit nmc num nms spc non ee eob rs com eti grpo lit lita 1013 dso dsc pero plus refc rni tagc tago vi */ 1014 nc21 []={NC1 ,NC1 ,NC1 ,NC1 ,NC1 ,NC1 ,NC1 ,NC1 ,NC1 ,IC1 ,NC1 ,NC1 ,LI1 ,LA1 , 1015 NC1 ,NC1 ,NC1 ,NC1 ,NC1 ,NC1 ,NC1 ,NC1 ,NC1 }, 1016 nc21a[]={NOP_,NOP_,NOP_,NOP_,NOP_,SYS_,EOF_,GET_,RS_ ,NOP_,NOP_,NOP_,NOP_,NOP_, 1017 NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,EMD ,NOP_,NOP_}, 1018 1019 ic21 []={NC1 ,NC1 ,NC1 ,NC1 ,NC1 ,IC1 ,NC1 ,IC1 ,NC1 ,IC2 ,NC1 ,NC1 ,LI1 ,LA1 , 1020 NC1 ,NC1 ,NC1 ,NC1 ,NC1 ,NC1 ,NC1 ,NC1 ,NC1 }, 1021 ic21a[]={NOP_,NOP_,NOP_,NOP_,NOP_,SYS_,EOF_,GET_,RS_ ,NOP_,NOP_,NOP_,NOP_,NOP_, 1022 NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,EMD ,NOP_,NOP_}, 1023 1024 ic22 []={IC2 ,IC2 ,IC2 ,IC2 ,IC2 ,IC2 ,NC1 ,IC2 ,IC2 ,IC3 ,IC2 ,IC2 ,IC2 ,IC2 , 1025 IC2 ,IC2 ,IC2 ,IC2 ,IC2 ,IC2 ,IC2 ,IC2 ,IC2 }, 1026 ic22a[]={NOP_,NOP_,NOP_,NOP_,NOP_,SYS_,EOF_,GET_,RS_ ,NOP_,NOP_,NOP_,NOP_,NOP_, 1027 NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_}, 1028 1029 ic23 []={IC2 ,IC2 ,IC2 ,IC2 ,IC2 ,IC3 ,NC1 ,IC3 ,IC2 ,NC1 ,IC2 ,IC2 ,IC2 ,IC2 , 1030 IC2 ,IC2 ,IC2 ,IC2 ,IC2 ,IC2 ,IC2 ,IC2 ,IC2 },/*ic3*/ 1031 ic23a[]={NOP_,NOP_,NOP_,NOP_,NOP_,SYS_,EOF_,GET_,RS_ ,NOP_,NOP_,NOP_,NOP_,NOP_, 1032 NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_}, 1033 1034 /* bit nmc num nms spc non ee eob rs com eti grpo lit lita 1035 dso dsc pero plus refc rni tagc tago vi */ 1036 li21 []={LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,NC1 ,LI1 , 1037 LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,LI1 ,LI1 },/*li1*/ 1038 li21a[]={NOP_,NOP_,NOP_,NOP_,NOP_,SYS_,EOF_,GET_,RS_ ,NOP_,NOP_,NOP_,NOP_,NOP_, 1039 NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_}, 1040 1041 la21 []={LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,NC1 , 1042 LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 ,LA1 },/*la1*/ 1043 la21a[]={NOP_,NOP_,NOP_,NOP_,NOP_,SYS_,EOF_,GET_,RS_ ,NOP_,NOP_,NOP_,NOP_,NOP_, 1044 NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_}, 1045 1046 *mditab[] = {nc21, nc21a, ic21, ic21a, ic22, ic22a, 1047 ic23, ic23a, li21, li21a, la21, la21a}; 1048 struct parse pcbmdi = {"MDI", lexmark, mditab, 0, 0, 0, 0}; 1049 #undef NC1 1050 #undef IC1 1051 #undef IC2 1052 #undef IC3 1053 #undef LI1 1054 #undef LA1 1055 /* PCBMSRC: State and action table for marked section in RCDATA mode. 1056 Nested marked sections are not recognized; the first MSE ends it. 1057 Initial state assumes an MS declaration was processed. 1058 Columns are based on LEXLMS.C but LITC column needn't exist. 1059 */ 1060 /* Symbols for state names (end with a number). */ 1061 #define ET0 0 /* MSS processed or buffer flushed; no data. */ 1062 #define DA0 2 /* Data in buffer. */ 1063 #define ER0 4 /* ERO found; start lookahead buffer. */ 1064 #define CR0 6 /* CRO found (ER0, RNI). */ 1065 #define ME0 8 /* MSC found. */ 1066 #define ME1 10 /* MSC, MSC found. */ 1067 1068 static UNCH 1069 /* free nu min nms spc non ee eob rs re sep cde nsc ero 1070 mdo msc mso pero rni tagc tago litc */ 1071 et30 []={DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,DA0 ,DA0 ,ET0 ,ER0 , 1072 DA0 ,ME0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 },/*et0*/ 1073 et30a[]={DAS_,DAS_,DAS_,DAS_,DAS_,NON_,EE_ ,GET_,RS_ ,REF_,DAS_,DAS_,NSC_,LAS_, 1074 DAS_,LAS_,DAS_,DAS_,DAS_,DAS_,DAS_,DAS_}, 1075 1076 da30 []={DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,DA0 ,DA0 ,ET0 ,ET0 , 1077 DA0 ,ET0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 ,DA0 },/*da0*/ 1078 da30a[]={NOP_,NOP_,NOP_,NOP_,NOP_,DAF_,DAF_,DAF_,DAF_,DAF_,NOP_,NOP_,DAF_,DAF_, 1079 NOP_,DAF_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_}, 1080 1081 er30 []={ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ER0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 , 1082 ET0 ,ET0 ,ET0 ,ET0 ,CR0 ,ET0 ,ET0 ,ET0 },/*er0*/ 1083 er30a[]={LAF_,LAF_,LAF_,ERX_,LAF_,LAF_,LAF_,GET_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_, 1084 LAF_,LAF_,LAF_,LAF_,LAM_,LAF_,LAF_,LAF_}, 1085 1086 /* free nu min nms spc non ee eob rs re sep cde nsc ero 1087 mdo msc mso pero rni tagc tago litc */ 1088 cr30 []={ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,CR0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 , 1089 ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 ,ET0 },/*cr0*/ 1090 cr30a[]={LAF_,CRN_,LAF_,CRA_,LAF_,LAF_,LAF_,GET_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_, 1091 LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_}, 1092 1093 me30 []={ET0, ET0, ET0, ET0, ET0 ,ET0, ET0, ME0, ET0 ,ET0 ,ET0 ,ET0, ET0 ,ET0 , 1094 ET0, ME1, ET0 ,ET0, ET0 ,ET0, ET0 ,ET0 },/*me0*/ 1095 me30a[]={LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,GET_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_, 1096 LAF_,LAM_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_}, 1097 1098 me31 []={ET0, ET0, ET0, ET0, ET0 ,ET0, ET0, ME1, ET0 ,ET0 ,ET0 ,ET0, ET0 ,ET0 , 1099 ET0, ET0, ET0 ,ET0, ET0 ,ET0, ET0 ,ET0,},/*me1*/ 1100 me31a[]={LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,GET_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_, 1101 LAF_,LAF_,LAF_,LAF_,LAF_,MSE_,LAF_,LAF_}, 1102 1103 *msrctab[]={et30, et30a, da30, da30a, er30, er30a, cr30, cr30a, 1104 me30, me30a, me31, me31a}; 1105 struct parse pcbmsrc = {"MSRCDATA", lexlms, msrctab, 0, 0, 0, 0}; 1106 #undef ET0 1107 #undef DA0 1108 #undef ER0 1109 #undef CR0 1110 #undef ME0 1111 #undef ME1 1112 /* PCBMSC: State and action table for marked section in CDATA mode. 1113 Nested marked sections are not recognized; the first MSE ends it. 1114 Initial state assumes an MS declaration was processed. 1115 */ 1116 /* Symbols for state names (end with a number). */ 1117 #define ET2 0 /* MSS processed or buffer flushed; no data. */ 1118 #define DA2 2 /* Data in buffer. */ 1119 #define ME2 4 /* MSC found. */ 1120 #define ME3 6 /* MSC, MSC found. */ 1121 1122 static UNCH 1123 /* free nu min nms spc non ee eob rs re sep cde nsc ero 1124 mdo msc mso pero rni tagc tago litc */ 1125 et32 []={DA2 ,DA2 ,DA2 ,DA2 ,DA2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,DA2 ,DA2 ,ET2 ,DA2 , 1126 DA2 ,ME2 ,DA2 ,DA2 ,DA2 ,DA2 ,DA2 ,DA2 },/*et2*/ 1127 et32a[]={DAS_,DAS_,DAS_,DAS_,DAS_,NON_,EOF_,GET_,RS_ ,REF_,DAS_,DAS_,NSC_,DAS_, 1128 DAS_,LAS_,DAS_,DAS_,DAS_,DAS_,DAS_,DAS_}, 1129 1130 da32 []={DA2 ,DA2 ,DA2 ,DA2 ,DA2 ,ET2 ,ET2 ,ET2 ,ET2 ,ET2 ,DA2 ,DA2 ,ET2 ,DA2 , 1131 DA2 ,ET2 ,DA2 ,DA2 ,DA2 ,DA2 ,DA2 ,DA2 },/*da2*/ 1132 da32a[]={NOP_,NOP_,NOP_,NOP_,NOP_,DAF_,DAF_,DAF_,DAF_,DAF_,NOP_,NOP_,DAF_,NOP_, 1133 NOP_,DAF_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_}, 1134 1135 me32 []={ET2, ET2, ET2, ET2, ET2 ,ET2, ET2, ME2, ET2 ,ET2 ,ET2 ,ET2, ET2 ,ET2 , 1136 ET2, ME3, ET2 ,ET2, ET2 ,ET2, ET2, ET2,},/*me2*/ 1137 me32a[]={LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,GET_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_, 1138 LAF_,LAM_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_}, 1139 1140 me33 []={ET2, ET2, ET2, ET2, ET2 ,ET2, ET2, ME3, ET2 ,ET2 ,ET2 ,ET2, ET2 ,ET2 , 1141 ET2, ET2, ET2 ,ET2, ET2 ,ET2, ET2, ET2,},/*me3*/ 1142 me33a[]={LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_,GET_,LAF_,LAF_,LAF_,LAF_,LAF_,LAF_, 1143 LAF_,LAF_,LAF_,LAF_,LAF_,MSE_,LAF_,LAF_}, 1144 1145 *msctab[]={et32, et32a, da32, da32a, me32, me32a, me33, me33a}; 1146 struct parse pcbmsc = {"MSCDATA", lexlms, msctab, 0, 0, 0, 0}; 1147 #undef ET2 1148 #undef DA2 1149 #undef ME2 1150 #undef ME3 1151 /* PCBMSI: State and action table for marked section in IGNORE mode. 1152 Nested marked sections are recognized; the matching MSE ends it. 1153 Initial state assumes an MS declaration, MSS, or MSE was processed. 1154 */ 1155 /* Symbols for state names (end with a number). */ 1156 #define ET4 0 /* Markup found or buffer flushed; no data. */ 1157 #define ME4 2 /* MSC found. */ 1158 #define ME5 4 /* MSC, MSC found. */ 1159 #define ES4 6 /* TAGO found. */ 1160 #define MD4 8 /* MDO found (TAGO, MDO[2]). */ 1161 1162 static UNCH 1163 /* free nu min nms spc non ee eob rs re sep cde nsc ero 1164 mdo msc mso pero rni tagc tago litc refc */ 1165 et34 []={ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 , 1166 ET4 ,ME4 ,ET4 ,ET4 ,ET4 ,ET4 ,ES4 ,ET4 ,ET4 },/*et4*/ 1167 et34a[]={NOP_,NOP_,NOP_,NOP_,NOP_,SYS_,EOF_,GET_,RS_ ,NOP_,NOP_,NOP_,SYS_,NOP_, 1168 NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_}, 1169 1170 me34 []={ET4, ET4, ET4, ET4, ET4 ,ET4, ET4, ME4, ET4 ,ET4 ,ET4 ,ET4, ET4, ET4 , 1171 ET4, ME5 ,ET4, ET4, ET4 ,ET4, ET4, ET4, ET4,},/*me4*/ 1172 me34a[]={NOP_,NOP_,NOP_,NOP_,NOP_,SYS_,EOF_,GET_,RS_ ,NOP_,NOP_,NOP_,SYS_,NOP_, 1173 NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_}, 1174 1175 me35 []={ET4, ET4, ET4, ET4, ET4 ,ET4, ET4, ME5, ET4 ,ET4 ,ET4 ,ET4, ET4, ET4 , 1176 ET4, ET4 ,ET4, ET4, ET4 ,ET4, ET4, ET4, ET4,},/*me5*/ 1177 me35a[]={NOP_,NOP_,NOP_,NOP_,NOP_,SYS_,EOF_,GET_,RS_ ,NOP_,NOP_,NOP_,SYS_,NOP_, 1178 NOP_,NOP_,NOP_,NOP_,NOP_,MSE_,NOP_,NOP_,NOP_}, 1179 1180 /* free nu min nms spc non ee eob rs re sep cde nsc ero 1181 mdo msc mso pero rni tagc tago litc */ 1182 es34 []={ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ES4 ,ET4 ,ES4 ,ET4 ,ET4 ,ET4 ,ET4 ,ES4 ,ET4 , 1183 MD4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 ,ET4 },/*es4*/ 1184 es34a[]={NOP_,NOP_,NOP_,NOP_,NOP_,SYS_,EOF_,GET_,RS_ ,NOP_,NOP_,NOP_,SYS_,NOP_, 1185 NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_,NOP_}, 1186 1187 md34 []={ET4, ET4, ET4, ET4, ET4 ,MD4, ET4, MD4, ET4 ,ET4 ,ET4 ,ET4, ET4, ET4 , 1188 ET4, ET4 ,ET4, ET4, ET4 ,ET4, ET4, ET4,},/*md4*/ 1189 md34a[]={NOP_,NOP_,NOP_,NOP_,NOP_,SYS_,EOF_,GET_,RS_ ,NOP_,NOP_,NOP_,SYS_,NOP_, 1190 NOP_,NOP_,MSS_,NOP_,NOP_,NOP_,NOP_,NOP_}, 1191 1192 *msitab[]={et34, et34a, me34, me34a, me35, me35a, es34, es34a, md34, md34a}; 1193 struct parse pcbmsi = {"MSIGNORE", lexlms, msitab, 0, 0, 0, 0}; 1194 #undef ET4 1195 #undef ME4 1196 #undef ME5 1197 #undef ES4 1198 #undef MD4 1199 #undef NS4 1200 /* PCBSTAG: State and action table for start-tag parse. 1201 Columns are based on LEXMARK.C. 1202 */ 1203 /* Symbols for state names (end with a number). */ 1204 #define SP1 0 /* Separator before name expected. */ 1205 #define AN1 2 /* Attribute name expected. */ 1206 #define SP2 4 /* Separator or value indicator expected. */ 1207 #define VI1 6 /* Value indicator expected. */ 1208 #define AV1 8 /* Attribute value expected. */ 1209 1210 int pcbstan = AN1; /* PCBSTAG: attribute name expected. */ 1211 1212 static UNCH 1213 /* bit nmc num nms spc non ee eob rs com eti grpo lit lita 1214 dso dsc pero plus refc rni tagc tago vi */ 1215 sp41 []={SP1 ,SP1 ,SP1 ,SP1 ,AN1 ,SP1 ,SP1 ,SP1 ,AN1 ,SP1 ,SP1 ,SP1 ,SP1 ,SP1 , 1216 SP1 ,SP1 ,SP1 ,SP1 ,SP1 ,SP1 ,SP1 ,SP1 ,SP1 }, 1217 sp41a[]={INV_,LEN_,LEN_,LEN_,NOP_,SYS_,EOF_,GET_,RS_ ,INV_,ETIC,INV_,INV_,INV_, 1218 INV_,DSC ,INV_,INV_,INV_,INV_,TAGC,TAGO,INV_}, 1219 1220 an41 []={SP1 ,SP1 ,SP1 ,SP2 ,AN1 ,AN1 ,AN1 ,AN1 ,AN1 ,SP1 ,SP1 ,SP1 ,SP1 ,SP1 , 1221 SP1 ,SP1 ,SP1 ,SP1 ,SP1 ,SP1 ,SP1 ,SP1 ,SP1 }, 1222 an41a[]={INV_,NTV ,NTV ,NVS ,NOP_,SYS_,EOF_,GET_,RS_ ,INV_,ETIC,INV_,INV_,INV_, 1223 INV_,DSC ,INV_,INV_,INV_,INV_,TAGC,TAGO,INV_}, 1224 1225 sp42 []={SP1 ,SP1 ,SP1 ,SP1 ,VI1 ,SP2 ,SP2 ,SP2 ,VI1 ,SP1 ,SP1 ,SP1 ,SP1 ,SP1 , 1226 SP1 ,SP1 ,SP1 ,SP1 ,SP1 ,SP1 ,SP1 ,SP1 ,AV1 }, 1227 sp42a[]={INV_,LEN_,LEN_,LEN_,NOP_,SYS_,EOF_,GET_,RS_ ,INV_,NASV,INV_,INV_,INV_, 1228 INV_,NASV,INV_,INV_,INV_,INV_,NASV,NASV,NOP_}, 1229 1230 /* bit nmc num nms spc non ee eob rs com eti grpo lit lita 1231 dso dsc pero plus refc rni tagc tago vi */ 1232 vi41 []={SP1 ,AN1 ,AN1 ,AN1 ,VI1 ,VI1 ,VI1 ,VI1 ,VI1 ,SP1 ,SP1 ,SP1 ,SP1 ,SP1 , 1233 SP1 ,SP1 ,SP1 ,SP1 ,SP1 ,SP1 ,SP1 ,SP1 ,AV1 }, 1234 vi41a[]={INV_,NASV,NASV,NASV,NOP_,SYS_,EOF_,GET_,RS_ ,INV_,NASV,INV_,INV_,INV_, 1235 INV_,NASV,INV_,INV_,INV_,INV_,NASV,NASV,NOP_}, 1236 1237 av41 []={SP1 ,SP1 ,SP1 ,SP1 ,AV1 ,AV1 ,AV1 ,AV1 ,AV1 ,SP1 ,SP1 ,SP1 ,AN1 ,AN1 , 1238 SP1 ,SP1 ,SP1 ,SP1 ,SP1 ,SP1 ,SP1 ,SP1 ,SP1 }, 1239 av41a[]={INV_,AVU ,AVU ,AVU ,NOP_,SYS_,EOF_,GET_,RS_ ,INV_,INV_,INV_,AVD ,AVDA, 1240 INV_,INV_,INV_,INV_,INV_,INV_,INV_,INV_,INV_}, 1241 1242 *stagtab[] = {sp41, sp41a, an41, an41a, sp42, sp42a, vi41, vi41a, av41, av41a}; 1243 struct parse pcbstag = {"STAG", lexmark, stagtab, 0, 0, 0, 0}; 1244 #undef SP1 1245 #undef AN1 1246 #undef SP2 1247 #undef VI1 1248 #undef AV1 1249 /* PCBETAG: State and action table for end-tag parse. 1250 */ 1251 #define TC1 0 /* Tag close expected (no attributes allowed). */ 1252 1253 static UNCH 1254 /* bit nmc nu nms spc non ee eob rs com eti grpo lit lita 1255 dso dsc pero plus refc rni tagc tago vi */ 1256 tc41 []={TC1 ,TC1 ,TC1 ,TC1 ,TC1 ,TC1 ,TC1 ,TC1 ,TC1 ,TC1 ,TC1 ,TC1 ,TC1 ,TC1 , 1257 TC1 ,TC1 ,TC1 ,TC1 ,TC1 ,TC1 ,TC1 ,TC1 ,TC1 },/*tc1*/ 1258 tc41a[]={INV_,INV_,INV_,INV_,NOP_,SYS_,EOF_,GET_,RS_ ,INV_,INV_,INV_,INV_,INV_, 1259 INV_,INV_,INV_,INV_,INV_,INV_,TAGC,TAGO,INV_}, 1260 1261 *etagtab[] = {tc41, tc41a}; 1262 struct parse pcbetag = {"ETAG", lexmark, etagtab, 0, 0, 0, 0}; 1263 #undef TC1 1264 /* PCBVAL: State and action table for tokenizing attribute values. 1265 Columns are based on lextoke (but EOB cannot occur). 1266 */ 1267 /* Symbols for state names (end with a number). */ 1268 #define TK1 0 /* Token expected. */ 1269 #define SP1 2 /* Separator before token expected. */ 1270 1271 static UNCH 1272 /* inv rec sep sp nmc nms nu eob */ 1273 tk51 []={TK1 ,TK1 ,TK1 ,TK1 ,SP1 ,SP1 ,SP1 },/*tk1*/ 1274 tk51a[]={INVA,INVA,INVA,NOPA,NMTA,NASA,NUMA}, 1275 1276 sp51 []={TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 },/*sp1*/ 1277 sp51a[]={INVA,INVA,INVA,NOPA,LENA,LENA,LENA}, 1278 1279 *valtab[] = {tk51, tk51a, sp51, sp51a}; 1280 struct parse pcbval = {"VAL", lextoke, valtab, 0, 0, 0, 0}; 1281 #undef TK1 1282 #undef SP1 1283 /* PCBEAL: State and action table for end of attribute specification list. 1284 If delimiter occurs, process it. Otherwise, put invalid character 1285 back for the next parse. 1286 */ 1287 /* Symbols for state names (end with a number). */ 1288 #define AL0 0 /* Delimiter expected. */ 1289 1290 static UNCH 1291 /* bit nmc nms re spc non ee eob rs and grpc grpo lit lita 1292 dtgc dtgo opt or pero plus rep rni seq refc */ 1293 al00 []={AL0 ,AL0 ,AL0 ,AL0 ,AL0 ,AL0 ,AL0 ,AL0 ,AL0 ,AL0 ,AL0 ,AL0 ,AL0 ,AL0 , 1294 AL0 ,AL0 ,AL0 ,AL0 ,AL0 ,AL0 ,AL0 ,AL0 ,AL0 ,AL0 },/*al0*/ 1295 al00a[]={INV_,INV_,INV_,INV_,INV_,SYS_,EE_ ,GET_,INV_,INV_,INV_,INV_,INV_,INV_, 1296 GRPE,INV_,INV_,INV_,INV_,INV_,INV_,INV_,INV_,INV_}, 1297 1298 *ealtab[] = {al00, al00a}; 1299 struct parse pcbeal = {"EAL", lexgrp, ealtab, 0, 0, 0, 0}; 1300 #undef AL0 1301 1302 /* PCBSD: State and action tables for SGML declaration parsing. */ 1303 1304 /* Symbols for state names. */ 1305 1306 #define SP1 0 /* Separator before token expected. */ 1307 #define TK1 2 /* Token expected. */ 1308 #define CM0 4 /* COM[1] found when sep expected: possible comment.*/ 1309 #define CM1 6 /* COM[1] found: possible comment.*/ 1310 #define CM2 8 /* COM[2] found; in comment. */ 1311 #define CM3 10 /* Ending COM[1] found; end comment or continue it. */ 1312 1313 static UNCH 1314 /* sig dat num nms spc non ee eob rs com lit lita tagc */ 1315 1316 sp31 []={SP1 ,SP1 ,SP1 ,SP1 ,TK1 ,SP1 ,SP1 ,SP1 ,TK1 ,CM0 ,TK1 ,TK1 ,SP1 }, 1317 sp31a[]={INV_,ISIG,LEN_,LEN_,NOP_,SYS_,EOF_,GET_,RS_ ,NOP_,LIT1,LIT2,ESGD}, 1318 1319 tk31 []={TK1 ,TK1 ,SP1 ,SP1 ,TK1 ,TK1 ,TK1 ,TK1 ,TK1 ,CM1 ,TK1 ,TK1 ,SP1 }, 1320 tk31a[]={INV_,ISIG,NUM1,NAS1,NOP_,SYS_,EOF_,GET_,RS_ ,NOP_,LIT1,LIT2,ESGD}, 1321 1322 cm30 []={SP1 ,CM0 ,SP1 ,SP1 ,SP1 ,CM0 ,SP1 ,CM0 ,SP1 ,CM2 ,SP1 ,SP1 ,SP1 }, 1323 cm30a[]={PCI_,ISIG,PCI_,PCI_,PCI_,SYS_,PCI_,GET_,PCI_,NOP_,PCI_,PCI_,PCI_}, 1324 1325 cm31 []={TK1 ,CM1 ,TK1 ,TK1 ,TK1 ,CM1 ,TK1 ,CM1 ,TK1 ,CM2 ,TK1 ,TK1 ,TK1 }, 1326 cm31a[]={PCI_,ISIG,PCI_,PCI_,PCI_,SYS_,PCI_,GET_,PCI_,NOP_,PCI_,PCI_,PCI_}, 1327 1328 cm32 []={CM2 ,CM2 ,CM2 ,CM2 ,CM2 ,CM2 ,TK1 ,CM2 ,CM2 ,CM3 ,CM2 ,CM2 ,CM2 }, 1329 cm32a[]={NOP_,ISIG,NOP_,NOP_,NOP_,SYS_,EOF_,GET_,RS_ ,NOP_,NOP_,NOP_,NOP_}, 1330 1331 cm33 []={CM2 ,CM3 ,CM2 ,CM2 ,CM2 ,CM3 ,TK1 ,CM3 ,CM2 ,TK1 ,CM2 ,CM2 ,CM2 }, 1332 cm33a[]={NOP_,ISIG,NOP_,NOP_,NOP_,SYS_,EOF_,GET_,RS_ ,NOP_,NOP_,NOP_,NOP_}, 1333 1334 *sdtab[]={sp31, sp31a, tk31, tk31a, cm30, cm30a, cm31, cm31a, cm32, cm32a, 1335 cm33, cm33a}; 1336 1337 struct parse pcbsd = {"SD", lexsd, sdtab, 0, 0, 0, 0}; 1338 1339 #undef SP1 1340 #undef TK1 1341 #undef CM0 1342 #undef CM1 1343 #undef CM2 1344 #undef CM3 1345