Home | History | Annotate | Download | only in src

Lines Matching refs:pScanner

128     void (*setBuf)(XltDecScannerPtr_t pScanner, const MemPtr_t pBufStart, const MemPtr_t pBufEnd); 
129 MemPtr_t (*getPos)(XltDecScannerPtr_t pScanner);
185 static Boolean_t readBytes(wbxmlScannerPrivPtr_t pScanner, Long_t bytes);
193 * pScanner->pos points to the first byte of the mb_int.
196 * pScanner->pos points to the last byte of the mb_int.
198 static Ret_t parseInt(wbxmlScannerPrivPtr_t pScanner, MBINT *mbi);
208 static Ret_t wbxmlHeader(wbxmlScannerPrivPtr_t pScanner);
209 static Ret_t wbxmlVersion(wbxmlScannerPrivPtr_t pScanner);
210 static Ret_t wbxmlPublicID(wbxmlScannerPrivPtr_t pScanner);
211 static Ret_t wbxmlCharset(wbxmlScannerPrivPtr_t pScanner);
212 static Ret_t wbxmlStrtbl(wbxmlScannerPrivPtr_t pScanner);
219 static Ret_t wbxmlSwitchPage(wbxmlScannerPrivPtr_t pScanner);
228 * pScanner->pos points to the first byte of a valid WBXML
232 * pScanner->pos points to the last byte of the WBXML
234 * pScanner->curtok contains type and tagid or pcdata of
237 static Ret_t wbxmlStringToken(wbxmlScannerPrivPtr_t pScanner);
238 static Ret_t wbxmlOpaqueToken(wbxmlScannerPrivPtr_t pScanner);
239 static Ret_t wbxmlTagToken(wbxmlScannerPrivPtr_t pScanner);
248 static Ret_t wbxmlSkipExtension(wbxmlScannerPrivPtr_t pScanner);
249 static Ret_t wbxmlSkipEntity(wbxmlScannerPrivPtr_t pScanner);
266 wbxmlScannerPrivPtr_t pScanner;
270 if ((pScanner = (wbxmlScannerPrivPtr_t)smlLibMalloc(sizeof(wbxmlScannerPriv_t))) == NULL)
272 smlLibMemset(pScanner, 0, sizeof(wbxmlScannerPriv_t));
273 pScanner->bufend = pBufEnd;
274 pScanner->pos = *ppBufPos;
275 if ((pScanner->curtok = (XltDecTokenPtr_t)smlLibMalloc(sizeof(XltDecToken_t))) == NULL) {
276 smlLibFree(pScanner);
280 pScanner->curtok->pcdata = NULL;
281 if ((rc = xltUtilCreateStack(&pScanner->tagstack, 10)) != SML_ERR_OK) {
282 smlLibFree(pScanner->curtok);
283 smlLibFree(pScanner);
287 pScanner->state = TAG_STATE;
290 pScanner->nextTok = _nextTok;
291 pScanner->destroy = _destroy;
292 pScanner->pushTok = _pushTok;
293 pScanner->setBuf = _setBuf;
294 pScanner->getPos = _getPos;
297 if ((rc = wbxmlHeader(pScanner)) != SML_ERR_OK) {
298 pScanner->destroy((XltDecScannerPtr_t)pScanner);
303 *ppScanner = (XltDecScannerPtr_t)pScanner;
314 _destroy(XltDecScannerPtr_t pScanner)
318 if (pScanner == NULL)
321 pScannerPriv = (wbxmlScannerPrivPtr_t)pScanner;
337 _nextTok(XltDecScannerPtr_t pScanner)
342 pScannerPriv = (wbxmlScannerPrivPtr_t)pScanner;
344 smlLibMemset(pScanner->curtok, 0, sizeof(XltDecToken_t));
381 _pushTok(XltDecScannerPtr_t pScanner)
388 pScannerPriv = (wbxmlScannerPrivPtr_t)pScanner;
416 _setBuf(XltDecScannerPtr_t pScanner, const MemPtr_t pBufStart,
419 wbxmlScannerPrivPtr_t pScannerPriv = (wbxmlScannerPrivPtr_t)pScanner;
425 _getPos(XltDecScannerPtr_t pScanner)
427 return ((wbxmlScannerPrivPtr_t)pScanner)->pos;
440 readBytes(wbxmlScannerPrivPtr_t pScanner, Long_t bytes)
442 if (pScanner->pos + bytes > pScanner->bufend) {
443 pScanner->finished = 1;
446 pScanner->pos += bytes;
468 wbxmlHeader(wbxmlScannerPrivPtr_t pScanner)
473 if ((rc = wbxmlVersion(pScanner)) != SML_ERR_OK)
475 if ((rc = wbxmlPublicID(pScanner)) != SML_ERR_OK)
477 if ((rc = wbxmlCharset(pScanner)) != SML_ERR_OK)
479 if ((rc = wbxmlStrtbl(pScanner)) != SML_ERR_OK)
493 wbxmlVersion(wbxmlScannerPrivPtr_t pScanner)
497 minor = ((Byte_t)(*pScanner->pos & 0x0F));
498 major = ((Byte_t)((*pScanner->pos >> 4) + 1));
505 if (!readBytes(pScanner, 1))
517 wbxmlPublicID(wbxmlScannerPrivPtr_t pScanner)
522 if (*pScanner->pos != 0) {
524 if ((rc = parseInt(pScanner, &tmp)) != SML_ERR_OK)
526 pScanner->pubID = tmp;
527 pScanner->pubIDIdx = 0;
532 if (!readBytes(pScanner, 1))
534 if ((rc = parseInt(pScanner, &tmp)) != SML_ERR_OK)
536 pScanner->pubID = 0;
537 pScanner->pubIDIdx = tmp;
539 if (!readBytes(pScanner, 1))
550 wbxmlCharset(wbxmlScannerPrivPtr_t pScanner)
558 if ((rc = parseInt(pScanner, &mibenum)) != SML_ERR_OK)
560 pScanner->charset = mibenum;
562 if (!readBytes(pScanner, 1))
574 wbxmlStrtbl(wbxmlScannerPrivPtr_t pScanner)
579 if ((rc = parseInt(pScanner, &len)) != SML_ERR_OK)
581 if (!readBytes(pScanner, 1))
583 pScanner->strtbllen = len;
585 if (pScanner->pos + len > pScanner->bufend)
587 if ((pScanner->strtbl = smlLibMalloc(len)) == NULL)
591 smlLibMemcpy(pScanner->strtbl, pScanner->pos, len);
592 readBytes(pScanner, len);
594 pScanner->strtbl = NULL;
599 if (pScanner->pubID == 0) {
600 if (pScanner->pubIDIdx > pScanner->strtbllen)
602 pScanner->pubIDStr = (String_t)(pScanner->strtbl + pScanner->pubIDIdx);
609 parseInt(wbxmlScannerPrivPtr_t pScanner, MBINT *mbi)
615 *mbi += *(pScanner->pos) & 0x7F;
616 if (!(*pScanner->pos & 0x80)) break;
617 if (!readBytes(pScanner, 1))
624 wbxmlStringToken(wbxmlScannerPrivPtr_t pScanner)
632 if (IS_STR_I(pScanner->pos)) {
634 if (!readBytes(pScanner, 1))
642 pPcdata->length = smlLibStrlen((String_t)pScanner->pos);
643 if (pScanner->pos + pPcdata->length + 1 > pScanner->bufend) {
651 smlLibStrncpy(pPcdata->content, (String_t)pScanner->pos, pPcdata->length + 1);
652 readBytes(pScanner, pPcdata->length + 1);
657 if (!readBytes(pScanner, 1))
663 if ((rc = parseInt(pScanner, &offset)) != SML_ERR_OK)
668 if (offset >= pScanner->strtbllen) {
673 pPcdata->length = smlLibStrlen((String_t)(pScanner->strtbl + offset));
678 smlLibStrncpy(pPcdata->content, (String_t)(pScanner->strtbl + offset), pPcdata->length + 1);
679 readBytes(pScanner, 1);
682 pScanner->curtok->pcdata = pPcdata;
684 pScanner->curtok->type = TOK_CONT;
690 wbxmlOpaqueToken(wbxmlScannerPrivPtr_t pScanner)
698 if (!readBytes(pScanner, 1))
703 if ((rc = parseInt(pScanner, &len)) != SML_ERR_OK)
705 if (!readBytes(pScanner, 1))
707 if (pScanner->pos + len > pScanner->bufend)
734 smlLibMemcpy(pPcdata->content, pScanner->pos, len);
735 pScanner->curtok->pcdata = pPcdata;
737 readBytes(pScanner, len);
739 pScanner->curtok->type = TOK_CONT;
745 wbxmlTagToken(wbxmlScannerPrivPtr_t pScanner)
751 if (IS_SWITCH(pScanner->pos)) {
752 if ((rc = wbxmlSwitchPage(pScanner)) != SML_ERR_OK)
758 if (IS_END(pScanner->pos)) {
759 if (!readBytes(pScanner, 1))
761 pScanner->curtok->type = TOK_TAG_END;
762 rc = pScanner->tagstack->pop(pScanner->tagstack, &tagid);
767 pScanner->curtok->tagid = tagid;
774 has_cont = ((Boolean_t)(HAS_CONTENT(pScanner->pos)));
775 has_attr = ((Boolean_t)(HAS_ATTRIBUTES(pScanner->pos)));
779 if (IS_LITERAL(pScanner->pos)) {
781 if (!readBytes(pScanner, 1))
783 if ((rc = parseInt(pScanner, &offset)) != SML_ERR_OK)
785 if (offset > pScanner->strtbllen)
788 rc = (Ret_t)getTagIDByStringAndExt((String_t)(pScanner->strtbl + offset), pScanner->activeExt, &tagid);
792 rc = (Ret_t)getTagIDByByteAndExt((Byte_t)IDENTITY(pScanner->pos), pScanner->activeExt, &tagid);
798 pScanner->curtok->tagid = tagid;
799 pScanner->curtok->type = has_cont ? TOK_TAG_START : TOK_TAG_EMPTY;
800 switch ( pScanner->cptag )
803 pScanner->curtok->ext = SML_EXT_UNDEFINED;
807 pScanner->curtok->ext = SML_EXT_METINF;
809 pScanner->curtok->ext = SML_EXT_UNDEFINED;
814 pScanner->curtok->ext = SML_EXT_DMTND;
816 pScanner->curtok->ext = SML_EXT_UNDEFINED;
821 pScanner->curtok->ext = SML_EXT_DEVINF;
823 pScanner->curtok->ext = SML_EXT_UNDEFINED;
827 pScanner->curtok->ext = SML_EXT_UNDEFINED;
831 if (!readBytes(pScanner, 1))
836 if ((rc = pScanner->tagstack->push(pScanner->tagstack, tagid)) != SML_ERR_OK)
842 pScanner->state = ATTRIBUTE_STATE;
843 if ((rc = wbxmlSkipAttribute(pScanner)) != SML_ERR_OK)
845 pScanner->state = TAG_STATE;
863 * In future versions the pScanner needs to be enhanced, to translate
867 wbxmlSwitchPage(wbxmlScannerPrivPtr_t pScanner)
869 if (!readBytes(pScanner, 1))
871 if (pScanner->state == TAG_STATE)
872 pScanner->cptag = (SmlPcdataExtension_t)*pScanner->pos;
874 pScanner->cpattr = *pScanner->pos;
875 readBytes(pScanner, 1);
879 switch ( pScanner->cptag )
882 pScanner->activeExt = SML_EXT_UNDEFINED;
886 pScanner->activeExt = SML_EXT_METINF;
888 pScanner->activeExt = SML_EXT_UNDEFINED;
893 pScanner->activeExt = SML_EXT_DMTND;
895 pScanner->activeExt = SML_EXT_UNDEFINED;
900 pScanner->activeExt = SML_EXT_DEVINF;
902 pScanner->activeExt = SML_EXT_UNDEFINED;
906 pScanner->activeExt = SML_EXT_UNDEFINED;
924 wbxmlSkipEntity(wbxmlScannerPrivPtr_t pScanner)
929 if (!readBytes(pScanner, 1))
931 if ((rc = parseInt(pScanner, &tmp)) != SML_ERR_OK)
933 if (!readBytes(pScanner, 1))
947 wbxmlSkipExtension(wbxmlScannerPrivPtr_t pScanner)
952 if (IS_EXT(pScanner->pos)) {
954 if (!readBytes(pScanner, 1))
956 } else if (IS_EXT_I(pScanner->pos)) {
958 if (!readBytes(pScanner, 1))
960 if (!readBytes(pScanner, smlLibStrlen((String_t)pScanner->pos) + 1))
964 if (!readBytes(pScanner, 1))
966 if ((rc = parseInt(pScanner, &tmp)) != SML_ERR_OK)
968 if (!readBytes(pScanner, tmp + 1))
981 wbxmlSkipPI(wbxmlScannerPrivPtr_t pScanner)
985 return wbxmlSkipAttribute(pScanner);
995 wbxmlSkipAttribute(wbxmlScannerPrivPtr_t pScanner)
1005 smlLibMemcpy(oldtok, pScanner->curtok, sizeof(XltDecToken_t));
1008 while (!IS_END(pScanner->pos)) {
1009 if (IS_STRING(pScanner->pos)) {
1010 rc = wbxmlStringToken(pScanner);
1013 smlLibFree(pScanner->curtok->pcdata);
1014 } else if (IS_EXTENSION(pScanner->pos)) {
1015 rc = wbxmlSkipExtension(pScanner);
1016 } else if (IS_ENTITY(pScanner->pos)) {
1017 rc = wbxmlSkipEntity(pScanner);
1018 } else if (IS_OPAQUE(pScanner->pos)) {
1019 rc = wbxmlOpaqueToken(pScanner);
1022 smlLibFree(pScanner->curtok->pcdata);
1023 } else if (IS_LITERAL(pScanner->pos)) {
1024 if (!readBytes(pScanner, 1))
1029 rc = parseInt(pScanner, &tmp);
1030 if (!readBytes(pScanner, 1))
1035 } else if (IS_SWITCH(pScanner->pos)) {
1036 rc = wbxmlSwitchPage(pScanner);
1038 if (!readBytes(pScanner, 1))
1052 readBytes(pScanner, 1);
1055 smlLibMemcpy(pScanner->curtok, oldtok, sizeof(XltDecToken_t));
1209 wbxmlScannerPrivPtr_t pScanner;
1230 if ((pScanner = (wbxmlScannerPrivPtr_t)smlLibMalloc(sizeof(wbxmlScannerPriv_t))) == NULL)
1238 smlLibMemset(pScanner, 0, sizeof(wbxmlScannerPriv_t));
1240 pScanner->bufend = bufIn + bufInLen;
1241 pScanner->pos = bufIn;
1242 if ((pScanner->curtok = (XltDecTokenPtr_t)smlLibMalloc(sizeof(XltDecToken_t))) == NULL) {
1243 smlLibFree(pScanner);
1244 pScanner = NULL;
1252 pScanner->curtok->pcdata = NULL;
1253 if ((rc = xltUtilCreateStack(&pScanner->tagstack, 10)) != SML_ERR_OK) {
1254 smlLibFree(pScanner->curtok);
1255 smlLibFree(pScanner);
1262 pScanner->state = TAG_STATE;
1266 pScanner->nextTok = _nextTok;
1267 pScanner->destroy = _destroy;
1268 pScanner->pushTok = _pushTok;
1269 pScanner->setBuf = _setBuf;
1270 pScanner->getPos = _getPos;
1280 minor = ((Byte_t)(*pScanner->pos & 0x0F));
1281 major = ((Byte_t)((*pScanner->pos >> 4) + 1));
1285 pScanner->destroy((XltDecScannerPtr_t)pScanner);
1304 if (!readBytes(pScanner, 1))
1306 pScanner->destroy((XltDecScannerPtr_t)pScanner);
1316 if ((rc = wbxmlPublicID(pScanner)) != SML_ERR_OK)
1318 pScanner->destroy((XltDecScannerPtr_t)pScanner);
1326 if ((rc = wbxmlCharset(pScanner)) != SML_ERR_OK)
1328 pScanner->destroy((XltDecScannerPtr_t)pScanner);
1336 if ((rc = wbxmlStrtbl(pScanner)) != SML_ERR_OK)
1338 pScanner->destroy((XltDecScannerPtr_t)pScanner);
1347 smlLibMemset(pScanner->curtok, 0, sizeof(XltDecToken_t));
1348 pScanner->curtok->start = pScanner->pos;
1352 pScanner->destroy((XltDecScannerPtr_t)pScanner);
1372 smlLibMemset(pScanner->curtok, 0, sizeof(XltDecToken_t));
1373 pScanner->curtok->start = pScanner->pos;
1379 if (IS_PI(pScanner->pos)) {
1381 rc = wbxmlSkipPI(pScanner);
1383 } else if (IS_EXTENSION(pScanner->pos)) {
1385 rc = wbxmlSkipExtension(pScanner);
1387 } else if (IS_ENTITY(pScanner->pos)) {
1389 rc = wbxmlSkipEntity(pScanner);
1393 } else if (IS_STRING(pScanner->pos)) {
1395 rc = wbxmlStringToken(pScanner);
1398 SmlPcdataPtr_t pcdata = pScanner->curtok->pcdata;
1402 smlLibMemset(pScanner->curtok, 0, sizeof(XltDecToken_t));
1403 pScanner->curtok->start = pScanner->pos;
1405 } else if (IS_OPAQUE(pScanner->pos)) {
1407 rc = wbxmlOpaqueToken(pScanner);
1410 SmlPcdataPtr_t pcdata = pScanner->curtok->pcdata;
1414 smlLibMemset(pScanner->curtok, 0, sizeof(XltDecToken_t));
1415 pScanner->curtok->start = pScanner->pos;
1420 rc = wbxmlTagToken(pScanner);
1432 pScanner->destroy((XltDecScannerPtr_t)pScanner);
1442 //Debug("tagid=%d, ext=%d\n",pScanner->curtok->tagid, pScanner->curtok->ext);
1443 if ((rc = getTagString(pScanner->curtok->tagid, _tagString, pScanner->activeExt)) != SML_ERR_OK)
1445 if(pScanner->curtok->type == TOK_TAG_END)
1448 if(tmpExt == pScanner->activeExt)
1453 rc =getTagString(pScanner->curtok->tagid, _tagString, tmpExt);
1463 if(pScanner->curtok->type == TOK_TAG_START)
1478 else if(pScanner->curtok->type == TOK_TAG_END)
1487 else if(pScanner->curtok->type == TOK_TAG_EMPTY)
1491 smlLibMemset(pScanner->curtok, 0, sizeof(XltDecToken_t));
1492 pScanner->curtok->start = pScanner->pos;
1504 pScanner->destroy((XltDecScannerPtr_t)pScanner);