46 rule* spRule = spRules;
47 for (ui = 0; ui < spCtx->uiRuleCount; ui++, spRule++) {
49 spRule->
ucpPpptMap = spCtx->ucpMaps + luipData[uj++];
50 spRule->
cpRuleName = spCtx->cpStringTable + luipData[uj++];
51 spRule->
spOp = spOpcodes + luipData[uj++];
61 if (spCtx->uiUdtCount) {
65 for (ui = 0; ui < spCtx->uiUdtCount; ui++, spUdt++) {
67 spUdt->
cpUdtName = spCtx->cpStringTable + luipData[uj++];
79 opcode* spOp = spOpcodes;
80 for (ui = 0; ui < spCtx->uiOpcodeCount; ui++, spOp++) {
81 spOp->sGen.uiId = (
aint)luipData[uj++];
82 switch (spOp->sGen.uiId) {
84 spOp->sGen.ucpPpptMap = spCtx->ucpMaps + luipData[uj++];
85 spOp->sAlt.uipChildList = spCtx->uipChildList + luipData[uj++];
86 spOp->sAlt.uiChildCount = (
aint)luipData[uj++];
89 spOp->sGen.ucpPpptMap = spCtx->ucpMaps + luipData[uj++];
90 spOp->sCat.uipChildList = spCtx->uipChildList + luipData[uj++];
91 spOp->sCat.uiChildCount = (
aint)luipData[uj++];
94 spOp->sGen.ucpPpptMap = spCtx->ucpMaps + luipData[uj++];
95 spOp->sRep.uiMin= (
aint)luipData[uj++];
96 if(luipData[uj] == (
luint)-1){
97 spOp->sRep.uiMax= (
aint)-1;
99 spOp->sRep.uiMax= (
aint)luipData[uj];
104 spOp->sGen.ucpPpptMap = spCtx->ucpMaps + luipData[uj++];
105 spOp->sRnm.spRule = spRules + luipData[uj++];
108 spOp->sGen.ucpPpptMap = spCtx->ucpMaps + luipData[uj++];
109 spOp->sTrg.acMin = (
achar)luipData[uj++];
110 spOp->sTrg.acMax = (
achar)luipData[uj++];
113 spOp->sGen.ucpPpptMap = spCtx->ucpMaps + luipData[uj++];
114 spOp->sTls.acpStrTbl = spCtx->acpAcharTable + luipData[uj++];
115 spOp->sTls.uiStrLen = (
aint)luipData[uj++];
118 spOp->sGen.ucpPpptMap = spCtx->ucpMaps + luipData[uj++];
119 spOp->sTbs.acpStrTbl = spCtx->acpAcharTable + luipData[uj++];
120 spOp->sTbs.uiStrLen = (
aint)luipData[uj++];
123 spOp->sGen.ucpPpptMap = NULL;
124 spOp->sUdt.spUdt = spUdts + luipData[uj++];
128 spOp->sGen.ucpPpptMap = NULL;
129 spOp->sBkr.uiRuleIndex = (
aint)luipData[uj++];
130 spOp->sBkr.uiCase = (
aint)luipData[uj++];
131 spOp->sBkr.uiMode = (
aint)luipData[uj++];
135 spOp->sGen.ucpPpptMap = spCtx->ucpMaps + luipData[uj++];
142 spOp->sGen.ucpPpptMap = NULL;
145 XTHROW(spCtx->spException,
"unrecognized opcode found in initialization data");