Home | History | Annotate | Download | only in src

Lines Matching refs:pScanner

126     void (*setBuf)(XltDecScannerPtr_t pScanner, const MemPtr_t pBufStart, const MemPtr_t pBufEnd); 
127 MemPtr_t (*getPos)(XltDecScannerPtr_t pScanner);
183 static Boolean_t readBytes(wbxmlScannerPrivPtr_t pScanner, Long_t bytes);
191 * pScanner->pos points to the first byte of the mb_int.
194 * pScanner->pos points to the last byte of the mb_int.
196 static Ret_t parseInt(wbxmlScannerPrivPtr_t pScanner, MBINT *mbi);
206 static Ret_t wbxmlHeader(wbxmlScannerPrivPtr_t pScanner);
207 static Ret_t wbxmlVersion(wbxmlScannerPrivPtr_t pScanner);
208 static Ret_t wbxmlPublicID(wbxmlScannerPrivPtr_t pScanner);
209 static Ret_t wbxmlCharset(wbxmlScannerPrivPtr_t pScanner);
210 static Ret_t wbxmlStrtbl(wbxmlScannerPrivPtr_t pScanner);
217 static Ret_t wbxmlSwitchPage(wbxmlScannerPrivPtr_t pScanner);
226 * pScanner->pos points to the first byte of a valid WBXML
230 * pScanner->pos points to the last byte of the WBXML
232 * pScanner->curtok contains type and tagid or pcdata of
235 static Ret_t wbxmlStringToken(wbxmlScannerPrivPtr_t pScanner);
236 static Ret_t wbxmlOpaqueToken(wbxmlScannerPrivPtr_t pScanner);
237 static Ret_t wbxmlTagToken(wbxmlScannerPrivPtr_t pScanner);
246 static Ret_t wbxmlSkipExtension(wbxmlScannerPrivPtr_t pScanner);
247 static Ret_t wbxmlSkipEntity(wbxmlScannerPrivPtr_t pScanner);
264 wbxmlScannerPrivPtr_t pScanner;
268 if ((pScanner = (wbxmlScannerPrivPtr_t)smlLibMalloc(sizeof(wbxmlScannerPriv_t))) == NULL)
270 smlLibMemset(pScanner, 0, sizeof(wbxmlScannerPriv_t));
271 pScanner->bufend = pBufEnd;
272 pScanner->pos = *ppBufPos;
273 if ((pScanner->curtok = (XltDecTokenPtr_t)smlLibMalloc(sizeof(XltDecToken_t))) == NULL) {
274 smlLibFree(pScanner);
278 pScanner->curtok->pcdata = NULL;
279 if ((rc = xltUtilCreateStack(&pScanner->tagstack, 10)) != SML_ERR_OK) {
280 smlLibFree(pScanner->curtok);
281 smlLibFree(pScanner);
285 pScanner->state = TAG_STATE;
288 pScanner->nextTok = _nextTok;
289 pScanner->destroy = _destroy;
290 pScanner->pushTok = _pushTok;
291 pScanner->setBuf = _setBuf;
292 pScanner->getPos = _getPos;
295 if ((rc = wbxmlHeader(pScanner)) != SML_ERR_OK) {
296 pScanner->destroy((XltDecScannerPtr_t)pScanner);
301 *ppScanner = (XltDecScannerPtr_t)pScanner;
312 _destroy(XltDecScannerPtr_t pScanner)
316 if (pScanner == NULL)
319 pScannerPriv = (wbxmlScannerPrivPtr_t)pScanner;
335 _nextTok(XltDecScannerPtr_t pScanner)
340 pScannerPriv = (wbxmlScannerPrivPtr_t)pScanner;
342 smlLibMemset(pScanner->curtok, 0, sizeof(XltDecToken_t));
379 _pushTok(XltDecScannerPtr_t pScanner)
386 pScannerPriv = (wbxmlScannerPrivPtr_t)pScanner;
414 _setBuf(XltDecScannerPtr_t pScanner, const MemPtr_t pBufStart,
417 wbxmlScannerPrivPtr_t pScannerPriv = (wbxmlScannerPrivPtr_t)pScanner;
423 _getPos(XltDecScannerPtr_t pScanner)
425 return ((wbxmlScannerPrivPtr_t)pScanner)->pos;
438 readBytes(wbxmlScannerPrivPtr_t pScanner, Long_t bytes)
440 if (pScanner->pos + bytes > pScanner->bufend) {
441 pScanner->finished = 1;
444 pScanner->pos += bytes;
466 wbxmlHeader(wbxmlScannerPrivPtr_t pScanner)
471 if ((rc = wbxmlVersion(pScanner)) != SML_ERR_OK)
473 if ((rc = wbxmlPublicID(pScanner)) != SML_ERR_OK)
475 if ((rc = wbxmlCharset(pScanner)) != SML_ERR_OK)
477 if ((rc = wbxmlStrtbl(pScanner)) != SML_ERR_OK)
491 wbxmlVersion(wbxmlScannerPrivPtr_t pScanner)
495 minor = ((Byte_t)(*pScanner->pos & 0x0F));
496 major = ((Byte_t)((*pScanner->pos >> 4) + 1));
503 if (!readBytes(pScanner, 1))
515 wbxmlPublicID(wbxmlScannerPrivPtr_t pScanner)
520 if (*pScanner->pos != 0) {
522 if ((rc = parseInt(pScanner, &tmp)) != SML_ERR_OK)
524 pScanner->pubID = tmp;
525 pScanner->pubIDIdx = 0;
530 if (!readBytes(pScanner, 1))
532 if ((rc = parseInt(pScanner, &tmp)) != SML_ERR_OK)
534 pScanner->pubID = 0;
535 pScanner->pubIDIdx = tmp;
537 if (!readBytes(pScanner, 1))
548 wbxmlCharset(wbxmlScannerPrivPtr_t pScanner)
556 if ((rc = parseInt(pScanner, &mibenum)) != SML_ERR_OK)
558 pScanner->charset = mibenum;
560 if (!readBytes(pScanner, 1))
572 wbxmlStrtbl(wbxmlScannerPrivPtr_t pScanner)
577 if ((rc = parseInt(pScanner, &len)) != SML_ERR_OK)
579 if (!readBytes(pScanner, 1))
581 pScanner->strtbllen = len;
583 if (pScanner->pos + len > pScanner->bufend)
585 if ((pScanner->strtbl = smlLibMalloc(len)) == NULL)
589 smlLibMemcpy(pScanner->strtbl, pScanner->pos, len);
590 readBytes(pScanner, len);
592 pScanner->strtbl = NULL;
597 if (pScanner->pubID == 0) {
598 if (pScanner->pubIDIdx > pScanner->strtbllen)
600 pScanner->pubIDStr = (String_t)(pScanner->strtbl + pScanner->pubIDIdx);
607 parseInt(wbxmlScannerPrivPtr_t pScanner, MBINT *mbi)
613 *mbi += *(pScanner->pos) & 0x7F;
614 if (!(*pScanner->pos & 0x80)) break;
615 if (!readBytes(pScanner, 1))
622 wbxmlStringToken(wbxmlScannerPrivPtr_t pScanner)
630 if (IS_STR_I(pScanner->pos)) {
632 if (!readBytes(pScanner, 1))
640 pPcdata->length = smlLibStrlen((String_t)pScanner->pos);
641 if (pScanner->pos + pPcdata->length + 1 > pScanner->bufend) {
649 smlLibStrncpy(pPcdata->content, (String_t)pScanner->pos, pPcdata->length + 1);
650 readBytes(pScanner, pPcdata->length + 1);
655 if (!readBytes(pScanner, 1))
661 if ((rc = parseInt(pScanner, &offset)) != SML_ERR_OK)
666 if (offset >= pScanner->strtbllen) {
671 pPcdata->length = smlLibStrlen((String_t)(pScanner->strtbl + offset));
676 smlLibStrncpy(pPcdata->content, (String_t)(pScanner->strtbl + offset), pPcdata->length + 1);
677 readBytes(pScanner, 1);
680 pScanner->curtok->pcdata = pPcdata;
682 pScanner->curtok->type = TOK_CONT;
688 wbxmlOpaqueToken(wbxmlScannerPrivPtr_t pScanner)
694 if (!readBytes(pScanner, 1))
699 if ((rc = parseInt(pScanner, &len)) != SML_ERR_OK)
701 if (!readBytes(pScanner, 1))
703 if (pScanner->pos + len > pScanner->bufend)
730 smlLibMemcpy(pPcdata->content, pScanner->pos, len);
731 pScanner->curtok->pcdata = pPcdata;
733 readBytes(pScanner, len);
735 pScanner->curtok->type = TOK_CONT;
741 wbxmlTagToken(wbxmlScannerPrivPtr_t pScanner)
747 if (IS_SWITCH(pScanner->pos)) {
748 if ((rc = wbxmlSwitchPage(pScanner)) != SML_ERR_OK)
754 if (IS_END(pScanner->pos)) {
755 if (!readBytes(pScanner, 1))
757 pScanner->curtok->type = TOK_TAG_END;
758 rc = pScanner->tagstack->pop(pScanner->tagstack, &tagid);
763 pScanner->curtok->tagid = tagid;
770 has_cont = ((Boolean_t)(HAS_CONTENT(pScanner->pos)));
771 has_attr = ((Boolean_t)(HAS_ATTRIBUTES(pScanner->pos)));
775 if (IS_LITERAL(pScanner->pos)) {
777 if (!readBytes(pScanner, 1))
779 if ((rc = parseInt(pScanner, &offset)) != SML_ERR_OK)
781 if (offset > pScanner->strtbllen)
784 rc = (Ret_t)getTagIDByStringAndExt((String_t)(pScanner->strtbl + offset), pScanner->activeExt, &tagid);
788 rc = (Ret_t)getTagIDByByteAndExt((Byte_t)IDENTITY(pScanner->pos), pScanner->activeExt, &tagid);
794 pScanner->curtok->tagid = tagid;
795 pScanner->curtok->type = has_cont ? TOK_TAG_START : TOK_TAG_EMPTY;
796 switch ( pScanner->cptag )
799 pScanner->curtok->ext = SML_EXT_UNDEFINED;
803 pScanner->curtok->ext = SML_EXT_METINF;
805 pScanner->curtok->ext = SML_EXT_UNDEFINED;
810 pScanner->curtok->ext = SML_EXT_DMTND;
812 pScanner->curtok->ext = SML_EXT_UNDEFINED;
817 pScanner->curtok->ext = SML_EXT_DEVINF;
819 pScanner->curtok->ext = SML_EXT_UNDEFINED;
823 pScanner->curtok->ext = SML_EXT_UNDEFINED;
827 if (!readBytes(pScanner, 1))
832 if ((rc = pScanner->tagstack->push(pScanner->tagstack, tagid)) != SML_ERR_OK)
838 pScanner->state = ATTRIBUTE_STATE;
839 if ((rc = wbxmlSkipAttribute(pScanner)) != SML_ERR_OK)
841 pScanner->state = TAG_STATE;
859 * In future versions the pScanner needs to be enhanced, to translate
863 wbxmlSwitchPage(wbxmlScannerPrivPtr_t pScanner)
865 if (!readBytes(pScanner, 1))
867 if (pScanner->state == TAG_STATE)
868 pScanner->cptag = (SmlPcdataExtension_t)*pScanner->pos;
870 pScanner->cpattr = *pScanner->pos;
871 readBytes(pScanner, 1);
875 switch ( pScanner->cptag )
878 pScanner->activeExt = SML_EXT_UNDEFINED;
882 pScanner->activeExt = SML_EXT_METINF;
884 pScanner->activeExt = SML_EXT_UNDEFINED;
889 pScanner->activeExt = SML_EXT_DMTND;
891 pScanner->activeExt = SML_EXT_UNDEFINED;
896 pScanner->activeExt = SML_EXT_DEVINF;
898 pScanner->activeExt = SML_EXT_UNDEFINED;
902 pScanner->activeExt = SML_EXT_UNDEFINED;
920 wbxmlSkipEntity(wbxmlScannerPrivPtr_t pScanner)
925 if (!readBytes(pScanner, 1))
927 if ((rc = parseInt(pScanner, &tmp)) != SML_ERR_OK)
929 if (!readBytes(pScanner, 1))
943 wbxmlSkipExtension(wbxmlScannerPrivPtr_t pScanner)
948 if (IS_EXT(pScanner->pos)) {
950 if (!readBytes(pScanner, 1))
952 } else if (IS_EXT_I(pScanner->pos)) {
954 if (!readBytes(pScanner, 1))
956 if (!readBytes(pScanner, smlLibStrlen((String_t)pScanner->pos) + 1))
960 if (!readBytes(pScanner, 1))
962 if ((rc = parseInt(pScanner, &tmp)) != SML_ERR_OK)
964 if (!readBytes(pScanner, tmp + 1))
977 wbxmlSkipPI(wbxmlScannerPrivPtr_t pScanner)
981 return wbxmlSkipAttribute(pScanner);
991 wbxmlSkipAttribute(wbxmlScannerPrivPtr_t pScanner)
1001 smlLibMemcpy(oldtok, pScanner->curtok, sizeof(XltDecToken_t));
1004 while (!IS_END(pScanner->pos)) {
1005 if (IS_STRING(pScanner->pos)) {
1006 rc = wbxmlStringToken(pScanner);
1009 smlLibFree(pScanner->curtok->pcdata);
1010 } else if (IS_EXTENSION(pScanner->pos)) {
1011 rc = wbxmlSkipExtension(pScanner);
1012 } else if (IS_ENTITY(pScanner->pos)) {
1013 rc = wbxmlSkipEntity(pScanner);
1014 } else if (IS_OPAQUE(pScanner->pos)) {
1015 rc = wbxmlOpaqueToken(pScanner);
1018 smlLibFree(pScanner->curtok->pcdata);
1019 } else if (IS_LITERAL(pScanner->pos)) {
1020 if (!readBytes(pScanner, 1))
1025 rc = parseInt(pScanner, &tmp);
1026 if (!readBytes(pScanner, 1))
1031 } else if (IS_SWITCH(pScanner->pos)) {
1032 rc = wbxmlSwitchPage(pScanner);
1034 if (!readBytes(pScanner, 1))
1048 readBytes(pScanner, 1);
1051 smlLibMemcpy(pScanner->curtok, oldtok, sizeof(XltDecToken_t));
1176 wbxmlScannerPrivPtr_t pScanner;
1197 if ((pScanner = (wbxmlScannerPrivPtr_t)smlLibMalloc(sizeof(wbxmlScannerPriv_t))) == NULL)
1205 smlLibMemset(pScanner, 0, sizeof(wbxmlScannerPriv_t));
1207 pScanner->bufend = bufIn + bufInLen;
1208 pScanner->pos = bufIn;
1209 if ((pScanner->curtok = (XltDecTokenPtr_t)smlLibMalloc(sizeof(XltDecToken_t))) == NULL) {
1210 smlLibFree(pScanner);
1211 pScanner = NULL;
1219 pScanner->curtok->pcdata = NULL;
1220 if ((rc = xltUtilCreateStack(&pScanner->tagstack, 10)) != SML_ERR_OK) {
1221 smlLibFree(pScanner->curtok);
1222 smlLibFree(pScanner);
1229 pScanner->state = TAG_STATE;
1233 pScanner->nextTok = _nextTok;
1234 pScanner->destroy = _destroy;
1235 pScanner->pushTok = _pushTok;
1236 pScanner->setBuf = _setBuf;
1237 pScanner->getPos = _getPos;
1247 minor = ((Byte_t)(*pScanner->pos & 0x0F));
1248 major = ((Byte_t)((*pScanner->pos >> 4) + 1));
1252 pScanner->destroy((XltDecScannerPtr_t)pScanner);
1271 if (!readBytes(pScanner, 1))
1273 pScanner->destroy((XltDecScannerPtr_t)pScanner);
1283 if ((rc = wbxmlPublicID(pScanner)) != SML_ERR_OK)
1285 pScanner->destroy((XltDecScannerPtr_t)pScanner);
1293 if ((rc = wbxmlCharset(pScanner)) != SML_ERR_OK)
1295 pScanner->destroy((XltDecScannerPtr_t)pScanner);
1303 if ((rc = wbxmlStrtbl(pScanner)) != SML_ERR_OK)
1305 pScanner->destroy((XltDecScannerPtr_t)pScanner);
1314 smlLibMemset(pScanner->curtok, 0, sizeof(XltDecToken_t));
1315 pScanner->curtok->start = pScanner->pos;
1319 pScanner->destroy((XltDecScannerPtr_t)pScanner);
1339 smlLibMemset(pScanner->curtok, 0, sizeof(XltDecToken_t));
1340 pScanner->curtok->start = pScanner->pos;
1346 if (IS_PI(pScanner->pos)) {
1348 rc = wbxmlSkipPI(pScanner);
1350 } else if (IS_EXTENSION(pScanner->pos)) {
1352 rc = wbxmlSkipExtension(pScanner);
1354 } else if (IS_ENTITY(pScanner->pos)) {
1356 rc = wbxmlSkipEntity(pScanner);
1360 } else if (IS_STRING(pScanner->pos)) {
1362 rc = wbxmlStringToken(pScanner);
1365 SmlPcdataPtr_t pcdata = pScanner->curtok->pcdata;
1369 smlLibMemset(pScanner->curtok, 0, sizeof(XltDecToken_t));
1370 pScanner->curtok->start = pScanner->pos;
1372 } else if (IS_OPAQUE(pScanner->pos)) {
1374 rc = wbxmlOpaqueToken(pScanner);
1377 SmlPcdataPtr_t pcdata = pScanner->curtok->pcdata;
1381 smlLibMemset(pScanner->curtok, 0, sizeof(XltDecToken_t));
1382 pScanner->curtok->start = pScanner->pos;
1387 rc = wbxmlTagToken(pScanner);
1399 pScanner->destroy((XltDecScannerPtr_t)pScanner);
1409 //Debug("tagid=%d, ext=%d\n",pScanner->curtok->tagid, pScanner->curtok->ext);
1410 if ((rc = getTagString(pScanner->curtok->tagid, _tagString, pScanner->activeExt)) != SML_ERR_OK)
1412 if(pScanner->curtok->type == TOK_TAG_END)
1415 if(tmpExt == pScanner->activeExt)
1420 rc =getTagString(pScanner->curtok->tagid, _tagString, tmpExt);
1430 if(pScanner->curtok->type == TOK_TAG_START)
1445 else if(pScanner->curtok->type == TOK_TAG_END)
1454 else if(pScanner->curtok->type == TOK_TAG_EMPTY)
1458 smlLibMemset(pScanner->curtok, 0, sizeof(XltDecToken_t));
1459 pScanner->curtok->start = pScanner->pos;
1471 pScanner->destroy((XltDecScannerPtr_t)pScanner);