Home | History | Annotate | Download | only in src

Lines Matching refs:pScanner

72     void  (*setBuf)(XltDecScannerPtr_t pScanner, const MemPtr_t pBufStart, const MemPtr_t pBufEnd); 
73 MemPtr_t (*getPos)(XltDecScannerPtr_t pScanner);
132 * IN/OUT: pScanner, the scanner
137 static Boolean_t readBytes(xmlScannerPrivPtr_t pScanner, Long_t bytes);
142 static void skipS(xmlScannerPrivPtr_t pScanner);
144 static Ret_t xmlTag(xmlScannerPrivPtr_t pScanner, Byte_t endtag);
145 static Ret_t xmlName(xmlScannerPrivPtr_t pScanner, String_t *name);
146 static Ret_t xmlCharData(xmlScannerPrivPtr_t pScanner);
147 static Ret_t xmlProlog(xmlScannerPrivPtr_t pScanner);
148 static Ret_t xmlDocTypeDecl(xmlScannerPrivPtr_t pScanner);
149 static Ret_t xmlXMLDecl(xmlScannerPrivPtr_t pScanner);
150 static Ret_t xmlAttribute(xmlScannerPrivPtr_t pScanner, String_t *name, String_t *value);
151 static Ret_t xmlStringConst(xmlScannerPrivPtr_t pScanner, String_t *value);
153 static Ret_t xmlSkipPCDATA(xmlScannerPrivPtr_t pScanner);
154 static Ret_t xmlSkipComment(xmlScannerPrivPtr_t pScanner);
155 static Ret_t xmlSkipAttributes(xmlScannerPrivPtr_t pScanner);
156 static Ret_t xmlSkipPI(xmlScannerPrivPtr_t pScanner);
157 static Ret_t xmlCDATA(xmlScannerPrivPtr_t pScanner);
168 xmlScannerPrivPtr_t pScanner;
171 pScanner = (xmlScannerPrivPtr_t)smlLibMalloc(sizeof(xmlScannerPriv_t));
172 if (pScanner == NULL) {
177 pScanner->finished = 0;
178 pScanner->pos = *ppBufStart;
179 pScanner->bufend = pBufEnd;
180 pScanner->curtok = (XltDecTokenPtr_t)smlLibMalloc(sizeof(XltDecToken_t));
181 if (pScanner->curtok == NULL) {
182 smlLibFree(pScanner);
187 pScanner->curtok->pcdata = NULL;
188 pScanner->curtok->tagid = TN_UNDEF;
189 pScanner->pubID = 0;
190 pScanner->pubIDStr = NULL;
191 pScanner->charset = 0;
192 pScanner->charsetStr = NULL;
193 pScanner->ext = SML_EXT_UNDEFINED;
194 pScanner->prev_ext = (SmlPcdataExtension_t)255;
195 pScanner->ext_tag = TN_UNDEF;
196 pScanner->prev_ext_tag = TN_UNDEF;
197 pScanner->nsprelen = 0;
198 pScanner->nsprefix = NULL;
202 pScanner->nextTok = _nextTok;
203 pScanner->destroy = _destroy;
204 pScanner->pushTok = _pushTok;
205 pScanner->setBuf = _setBuf;
206 pScanner->getPos = _getPos;
208 if ((rc = xmlProlog(pScanner)) != SML_ERR_OK) {
209 smlLibFree(pScanner->curtok);
210 smlLibFree(pScanner);
215 *ppScanner = (XltDecScannerPtr_t)pScanner;
228 _destroy(XltDecScannerPtr_t pScanner)
232 if (pScanner == NULL)
235 pScannerPriv = (xmlScannerPrivPtr_t)pScanner;
250 _nextTok(XltDecScannerPtr_t pScanner)
255 pScannerPriv = (xmlScannerPrivPtr_t)pScanner;
299 static Ret_t _pushTok(XltDecScannerPtr_t pScanner)
303 pScannerPriv = (xmlScannerPrivPtr_t)pScanner;
321 _setBuf(XltDecScannerPtr_t pScanner, const MemPtr_t pBufStart,
324 xmlScannerPrivPtr_t pScannerPriv = (xmlScannerPrivPtr_t)pScanner;
335 _getPos(XltDecScannerPtr_t pScanner)
337 return ((xmlScannerPrivPtr_t)pScanner)->pos;
353 readBytes(xmlScannerPrivPtr_t pScanner, Long_t bytes)
355 if (pScanner->pos + bytes > pScanner->bufend) {
356 pScanner->finished = 1;
359 pScanner->pos += bytes;
368 static void skipS(xmlScannerPrivPtr_t pScanner)
371 switch (*pScanner->pos) {
377 if (!readBytes(pScanner, 1)) return;
391 xmlProlog(xmlScannerPrivPtr_t pScanner)
395 skipS(pScanner);
397 if (pScanner->pos + 5 > pScanner->bufend)
399 if (smlLibStrncmp((String_t)pScanner->pos, "<?xml", 5) == 0)
400 if ((rc = xmlXMLDecl(pScanner)) != SML_ERR_OK)
403 skipS(pScanner);
405 while ((pScanner->pos + 4 <= pScanner->bufend) &&
406 ((smlLibStrncmp((String_t)pScanner->pos, "<!--", 4) == 0) ||
407 (smlLibStrncmp((String_t)pScanner->pos, "<?", 2) == 0))) {
408 if (smlLibStrncmp((String_t)pScanner->pos, "<!--", 4) == 0)
409 rc = xmlSkipComment(pScanner);
411 rc = xmlSkipPI(pScanner);
414 skipS(pScanner);
417 if ((pScanner->pos + 9 <= pScanner->bufend) &&
418 (smlLibStrncmp((String_t)pScanner->pos, "<!DOCTYPE", 9) == 0))
419 if ((rc = xmlDocTypeDecl(pScanner)) != SML_ERR_OK)
422 skipS(pScanner);
433 xmlDocTypeDecl(xmlScannerPrivPtr_t pScanner)
440 readBytes(pScanner, 9);
441 skipS(pScanner);
442 if ((rc = xmlName(pScanner, &name)) != SML_ERR_OK) {
446 skipS(pScanner);
449 if ((pScanner->pos + 6 <= pScanner->bufend) &&
450 (smlLibStrncmp((String_t)pScanner->pos, "SYSTEM", 6) == 0)) {
451 readBytes(pScanner, 6);
452 skipS(pScanner);
453 if ((rc = xmlStringConst(pScanner, &syslit)) != SML_ERR_OK) {
458 } else if ((pScanner->pos + 6 <= pScanner->bufend) &&
459 (smlLibStrncmp((String_t)pScanner->pos, "PUBLIC", 6) == 0)) {
460 readBytes(pScanner, 6);
461 skipS(pScanner);
462 if ((rc = xmlStringConst(pScanner, &publit)) != SML_ERR_OK) {
467 skipS(pScanner);
468 if ((rc = xmlStringConst(pScanner, &syslit)) != SML_ERR_OK) {
480 skipS(pScanner);
482 if (*pScanner->pos != '>')
484 readBytes(pScanner, 1);
495 xmlXMLDecl(xmlScannerPrivPtr_t pScanner)
500 readBytes(pScanner, 5);
501 skipS(pScanner);
504 if ((rc = xmlAttribute(pScanner, &name, &value)) != SML_ERR_OK) {
517 skipS(pScanner);
520 while ((pScanner->pos + 2 <= pScanner->bufend) &&
521 (smlLibStrncmp((String_t)pScanner->pos, "?>", 2) != 0)) {
522 if ((rc = xmlAttribute(pScanner, &name, &value)) != SML_ERR_OK) {
529 skipS(pScanner);
532 if (pScanner->pos + 2 > pScanner->bufend)
535 pScanner, 2);
546 xmlAttribute(xmlScannerPrivPtr_t pScanner, String_t *name, String_t *value)
550 skipS(pScanner);
552 if ((rc = xmlName(pScanner, name)) != SML_ERR_OK)
555 skipS(pScanner);
558 if (*pScanner->pos == '>') {
561 if (smlLibStrncmp((String_t)pScanner->pos, "/>", 2) == 0) {
565 if (*pScanner->pos != '=') {
571 readBytes(pScanner, 1);
573 skipS(pScanner);
575 if ((rc = xmlStringConst(pScanner, value)) != SML_ERR_OK) {
591 xmlStringConst(xmlScannerPrivPtr_t pScanner, String_t *value)
597 if ((*pScanner->pos != '"') && (*pScanner->pos != '\'')) {
601 del = *pScanner->pos;
602 readBytes(pScanner, 1);
604 if ((end = smlLibStrchr((String_t)pScanner->pos, del)) == NULL) {
609 len = end - (String_t)pScanner->pos;
616 smlLibStrncpy(*value, (String_t)pScanner->pos, len);
617 readBytes(pScanner, len + 1);
681 xmlCharData(xmlScannerPrivPtr_t pScanner)
695 begin = pScanner->pos;
697 if (pScanner->pos >= pScanner->bufend) {
702 pScanner->curtok->type = TOK_CONT;
703 pScanner->curtok->pcdata = pPCData;
708 while (*pScanner->pos != '<') /* && (*pScanner->pos != '&') */
710 if (pScanner->pos >= pScanner->bufend)
715 if (!readBytes(pScanner, 1)) {
721 len = pScanner->pos - begin;
732 pScanner->curtok->type = TOK_CONT;
733 pScanner->curtok->pcdata = pPCData;
744 xmlName(xmlScannerPrivPtr_t pScanner, String_t *name)
750 begin = pScanner->pos;
751 while (((*pScanner->pos >= 'a') && (*pScanner->pos <= 'z')) ||
752 ((*pScanner->pos >= 'A') && (*pScanner->pos <= 'Z')) ||
753 ((*pScanner->pos >= '0') && (*pScanner->pos <= '9')) ||
754 (*pScanner->pos == '.') || (*pScanner->pos == '-') ||
755 (*pScanner->pos == '_') || (*pScanner->pos == ':'))
756 if (!readBytes(pScanner, 1))
759 len = pScanner->pos - begin;
781 xmlTag(xmlScannerPrivPtr_t pScanner, Byte_t endtag)
791 if (!readBytes(pScanner, 2))
794 if (!readBytes(pScanner, 1))
798 if ((rc = xmlName(pScanner, &name)) != SML_ERR_OK)
815 ext = pScanner->ext;
824 if ((rc = xmlAttribute(pScanner, &attname, &value)) == SML_ERR_OK)
909 if (pScanner->ext == ext) {
917 if (pScanner->nsprelen > 0 && smlLibStrlen(name) > pScanner->nsprelen+1) {
918 if (name[pScanner->nsprelen] != ':' || smlLibStrncmp(name,pScanner->nsprefix, pScanner->nsprelen) != 0) {
927 * If no prefix is defined (pScanner->nsprelen == 0) take the whole tagname.
929 if (pScanner->nsprelen > 0)
930 rc = getTagIDByStringAndExt(&name[0+pScanner->nsprelen+1], pScanner->ext, &tagid);
932 rc = getTagIDByStringAndExt(name, pScanner->ext, &tagid);
945 * If no prefix is defined (pScanner->nsprelen == 0) take the whole tagname.
963 if (ext != pScanner->ext) { /* namespace changed */
964 pScanner->prev_ext = pScanner->ext; /* remember the old ext */
965 pScanner->prev_ext_tag = pScanner->ext_tag; /* and the corresponding start tag */
966 pScanner->ext = ext;
967 pScanner->ext_tag = tagid;
968 smlLibFree(pScanner->nsprefix);
969 pScanner->nsprefix = nsprefix;
970 pScanner->nsprelen = nsprelen;
974 pScanner->curtok->tagid = tagid;
975 pScanner->curtok->ext = pScanner->ext;
976 skipS(pScanner);
980 if (smlLibStrncmp((String_t)pScanner->pos, ">", 1) != 0)
982 pScanner->curtok->type = TOK_TAG_END;
983 readBytes(pScanner, 1);
985 if (tagid == pScanner->ext_tag) {
986 pScanner->ext_tag = pScanner->prev_ext_tag;
987 pScanner->ext = pScanner->prev_ext;
988 pScanner->prev_ext = SML_EXT_UNDEFINED;
989 pScanner->prev_ext_tag = TN_UNDEF;
990 pScanner->nsprelen = 0;
991 smlLibFree(pScanner->nsprefix);
992 pScanner->nsprefix = NULL;
996 if ((rc = xmlSkipAttributes(pScanner)) != SML_ERR_OK) return rc;
998 if (smlLibStrncmp((String_t)pScanner->pos, "/>", 2) == 0) {
1000 pScanner->curtok->type = TOK_TAG_EMPTY;
1001 readBytes(pScanner, 2);
1002 } else if (smlLibStrncmp((String_t)pScanner->pos, ">", 1) == 0) {
1003 pScanner->curtok->type = TOK_TAG_START;
1004 readBytes(pScanner, 1);
1019 xmlSkipPI(xmlScannerPrivPtr_t pScanner)
1021 if (pScanner) { /* Get rid of warning, this should not be called anyway */
1033 xmlSkipComment(xmlScannerPrivPtr_t pScanner)
1035 readBytes(pScanner, 4);
1037 while ((pScanner->pos + 3 <= pScanner->bufend) &&
1038 (smlLibStrncmp((String_t)pScanner->pos, "-->", 3) != 0))
1039 if (!readBytes(pScanner, 1))
1043 if (pScanner->pos + 3 > pScanner->bufend)
1046 if (!readBytes(pScanner, 3))
1049 skipS(pScanner);
1060 xmlSkipAttributes(xmlScannerPrivPtr_t pScanner)
1063 while ((pScanner->pos + 1 <= pScanner->bufend) &&
1064 (smlLibStrncmp((String_t)pScanner->pos, ">", 1)) && (smlLibStrncmp((String_t)pScanner->pos, "/>", 2)))
1065 if (!readBytes(pScanner, 1))
1069 if (pScanner->pos + 1 > pScanner->bufend)
1081 xmlCDATA(xmlScannerPrivPtr_t pScanner)
1087 readBytes(pScanner, 9);
1096 begin = pScanner->pos;
1097 while (!((pScanner->pos[0] == ']') && (pScanner->pos[1] == ']') && (pScanner->pos[2] == '>')))
1099 if (!readBytes(pScanner, 1))
1106 len = pScanner->pos - begin;
1118 pScanner->curtok->type = TOK_CONT;
1119 pScanner->curtok->pcdata = pPCData;
1121 readBytes(pScanner, 3);
1132 xmlSkipPCDATA(xmlScannerPrivPtr_t pScanner)
1148 if (smlLibStrncmp((String_t)pScanner
1149 rc = xmlTag(pScanner, 0);
1155 if ((rc = getTagString(pScanner->curtok->tagid, _tagString, pScanner->curtok->ext)) != SML_ERR_OK)
1161 _tagString2 = smlLibMalloc(smlLibStrlen(_tagString) + 4 + (pScanner->nsprelen +1));
1172 if (pScanner->nsprelen > 0) {
1173 _tagString2 = smlLibStrcat(_tagString2,pScanner->nsprefix);
1194 begin = pScanner->pos;
1198 while (smlLibStrncmp((String_t)pScanner->pos, _tagString2, len) != 0)
1200 if ((pScanner->pos + len) >= pScanner->bufend)
1204 pScanner->curtok->pcdata = NULL;
1207 if (!readBytes(pScanner, 1))
1216 len = pScanner->pos - begin;
1231 pScanner->curtok->type = TOK_CONT;
1232 pScanner->curtok->pcdata = pPCData;