Lines Matching refs:ptr

9 #define IS_INVALID_CHAR(enc, ptr, n) (0)  argument
12 #define INVALID_LEAD_CASE(n, ptr, nextTokPtr) \ argument
14 if (end - ptr < n) \
16 if (IS_INVALID_CHAR(enc, ptr, n)) { \
17 *(nextTokPtr) = (ptr); \
20 ptr += n; \
23 #define INVALID_CASES(ptr, nextTokPtr) \ argument
24 INVALID_LEAD_CASE(2, ptr, nextTokPtr) \
25 INVALID_LEAD_CASE(3, ptr, nextTokPtr) \
26 INVALID_LEAD_CASE(4, ptr, nextTokPtr) \
30 *(nextTokPtr) = (ptr); \
33 #define CHECK_NAME_CASE(n, enc, ptr, end, nextTokPtr) \ argument
35 if (end - ptr < n) \
37 if (!IS_NAME_CHAR(enc, ptr, n)) { \
38 *nextTokPtr = ptr; \
41 ptr += n; \
44 #define CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) \ argument
46 if (!IS_NAME_CHAR_MINBPC(enc, ptr)) { \
47 *nextTokPtr = ptr; \
55 ptr += MINBPC(enc); \
57 CHECK_NAME_CASE(2, enc, ptr, end, nextTokPtr) \
58 CHECK_NAME_CASE(3, enc, ptr, end, nextTokPtr) \
59 CHECK_NAME_CASE(4, enc, ptr, end, nextTokPtr)
61 #define CHECK_NMSTRT_CASE(n, enc, ptr, end, nextTokPtr) \ argument
63 if (end - ptr < n) \
65 if (!IS_NMSTRT_CHAR(enc, ptr, n)) { \
66 *nextTokPtr = ptr; \
69 ptr += n; \
72 #define CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr) \ argument
74 if (!IS_NMSTRT_CHAR_MINBPC(enc, ptr)) { \
75 *nextTokPtr = ptr; \
80 ptr += MINBPC(enc); \
82 CHECK_NMSTRT_CASE(2, enc, ptr, end, nextTokPtr) \
83 CHECK_NMSTRT_CASE(3, enc, ptr, end, nextTokPtr) \
84 CHECK_NMSTRT_CASE(4, enc, ptr, end, nextTokPtr)
91 #define HAS_CHARS(enc, ptr, end, count) \ argument
92 (end - ptr >= count * MINBPC(enc))
94 #define HAS_CHAR(enc, ptr, end) \ argument
95 HAS_CHARS(enc, ptr, end, 1)
97 #define REQUIRE_CHARS(enc, ptr, end, count) \ argument
99 if (! HAS_CHARS(enc, ptr, end, count)) { \
104 #define REQUIRE_CHAR(enc, ptr, end) \ argument
105 REQUIRE_CHARS(enc, ptr, end, 1)
111 PREFIX(scanComment)(const ENCODING *enc, const char *ptr, in PREFIX()
114 if (HAS_CHAR(enc, ptr, end)) { in PREFIX()
115 if (!CHAR_MATCHES(enc, ptr, ASCII_MINUS)) { in PREFIX()
116 *nextTokPtr = ptr; in PREFIX()
119 ptr += MINBPC(enc); in PREFIX()
120 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
121 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
122 INVALID_CASES(ptr, nextTokPtr) in PREFIX()
124 ptr += MINBPC(enc); in PREFIX()
125 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
126 if (CHAR_MATCHES(enc, ptr, ASCII_MINUS)) { in PREFIX()
127 ptr += MINBPC(enc); in PREFIX()
128 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
129 if (!CHAR_MATCHES(enc, ptr, ASCII_GT)) { in PREFIX()
130 *nextTokPtr = ptr; in PREFIX()
133 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
138 ptr += MINBPC(enc); in PREFIX()
149 PREFIX(scanDecl)(const ENCODING *enc, const char *ptr, in PREFIX()
152 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
153 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
155 return PREFIX(scanComment)(enc, ptr + MINBPC(enc), end, nextTokPtr); in PREFIX()
157 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
161 ptr += MINBPC(enc); in PREFIX()
164 *nextTokPtr = ptr; in PREFIX()
167 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
168 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
170 REQUIRE_CHARS(enc, ptr, end, 2); in PREFIX()
172 switch (BYTE_TYPE(enc, ptr + MINBPC(enc))) { in PREFIX()
174 *nextTokPtr = ptr; in PREFIX()
179 *nextTokPtr = ptr; in PREFIX()
183 ptr += MINBPC(enc); in PREFIX()
186 *nextTokPtr = ptr; in PREFIX()
194 PREFIX(checkPiTarget)(const ENCODING *UNUSED_P(enc), const char *ptr, in PREFIX()
199 if (end - ptr != MINBPC(enc)*3) in PREFIX()
201 switch (BYTE_TO_ASCII(enc, ptr)) { in PREFIX()
210 ptr += MINBPC(enc); in PREFIX()
211 switch (BYTE_TO_ASCII(enc, ptr)) { in PREFIX()
220 ptr += MINBPC(enc); in PREFIX()
221 switch (BYTE_TO_ASCII(enc, ptr)) { in PREFIX()
239 PREFIX(scanPi)(const ENCODING *enc, const char *ptr, in PREFIX()
243 const char *target = ptr; in PREFIX()
244 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
245 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
246 CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
248 *nextTokPtr = ptr; in PREFIX()
251 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
252 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
253 CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
255 if (!PREFIX(checkPiTarget)(enc, target, ptr, &tok)) { in PREFIX()
256 *nextTokPtr = ptr; in PREFIX()
259 ptr += MINBPC(enc); in PREFIX()
260 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
261 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
262 INVALID_CASES(ptr, nextTokPtr) in PREFIX()
264 ptr += MINBPC(enc); in PREFIX()
265 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
266 if (CHAR_MATCHES(enc, ptr, ASCII_GT)) { in PREFIX()
267 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
272 ptr += MINBPC(enc); in PREFIX()
278 if (!PREFIX(checkPiTarget)(enc, target, ptr, &tok)) { in PREFIX()
279 *nextTokPtr = ptr; in PREFIX()
282 ptr += MINBPC(enc); in PREFIX()
283 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
284 if (CHAR_MATCHES(enc, ptr, ASCII_GT)) { in PREFIX()
285 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
290 *nextTokPtr = ptr; in PREFIX()
298 PREFIX(scanCdataSection)(const ENCODING *UNUSED_P(enc), const char *ptr, in PREFIX()
305 REQUIRE_CHARS(enc, ptr, end, 6); in PREFIX()
306 for (i = 0; i < 6; i++, ptr += MINBPC(enc)) { in PREFIX()
307 if (!CHAR_MATCHES(enc, ptr, CDATA_LSQB[i])) { in PREFIX()
308 *nextTokPtr = ptr; in PREFIX()
312 *nextTokPtr = ptr; in PREFIX()
317 PREFIX(cdataSectionTok)(const ENCODING *enc, const char *ptr, in PREFIX()
320 if (ptr >= end) in PREFIX()
323 size_t n = end - ptr; in PREFIX()
328 end = ptr + n; in PREFIX()
331 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
333 ptr += MINBPC(enc); in PREFIX()
334 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
335 if (!CHAR_MATCHES(enc, ptr, ASCII_RSQB)) in PREFIX()
337 ptr += MINBPC(enc); in PREFIX()
338 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
339 if (!CHAR_MATCHES(enc, ptr, ASCII_GT)) { in PREFIX()
340 ptr -= MINBPC(enc); in PREFIX()
343 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
346 ptr += MINBPC(enc); in PREFIX()
347 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
348 if (BYTE_TYPE(enc, ptr) == BT_LF) in PREFIX()
349 ptr += MINBPC(enc); in PREFIX()
350 *nextTokPtr = ptr; in PREFIX()
353 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
355 INVALID_CASES(ptr, nextTokPtr) in PREFIX()
357 ptr += MINBPC(enc); in PREFIX()
360 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
361 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
364 if (end - ptr < n || IS_INVALID_CHAR(enc, ptr, n)) { \ in PREFIX()
365 *nextTokPtr = ptr; \ in PREFIX()
368 ptr += n; \ in PREFIX()
378 *nextTokPtr = ptr; in PREFIX()
381 ptr += MINBPC(enc); in PREFIX()
385 *nextTokPtr = ptr; in PREFIX()
392 PREFIX(scanEndTag)(const ENCODING *enc, const char *ptr, in PREFIX()
395 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
396 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
397 CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
399 *nextTokPtr = ptr; in PREFIX()
402 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
403 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
404 CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
406 for (ptr += MINBPC(enc); HAS_CHAR(enc, ptr, end); ptr += MINBPC(enc)) { in PREFIX()
407 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
411 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
414 *nextTokPtr = ptr; in PREFIX()
423 ptr += MINBPC(enc); in PREFIX()
427 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
430 *nextTokPtr = ptr; in PREFIX()
440 PREFIX(scanHexCharRef)(const ENCODING *enc, const char *ptr, in PREFIX()
443 if (HAS_CHAR(enc, ptr, end)) { in PREFIX()
444 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
449 *nextTokPtr = ptr; in PREFIX()
452 for (ptr += MINBPC(enc); HAS_CHAR(enc, ptr, end); ptr += MINBPC(enc)) { in PREFIX()
453 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
458 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
461 *nextTokPtr = ptr; in PREFIX()
472 PREFIX(scanCharRef)(const ENCODING *enc, const char *ptr, in PREFIX()
475 if (HAS_CHAR(enc, ptr, end)) { in PREFIX()
476 if (CHAR_MATCHES(enc, ptr, ASCII_x)) in PREFIX()
477 return PREFIX(scanHexCharRef)(enc, ptr + MINBPC(enc), end, nextTokPtr); in PREFIX()
478 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
482 *nextTokPtr = ptr; in PREFIX()
485 for (ptr += MINBPC(enc); HAS_CHAR(enc, ptr, end); ptr += MINBPC(enc)) { in PREFIX()
486 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
490 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
493 *nextTokPtr = ptr; in PREFIX()
504 PREFIX(scanRef)(const ENCODING *enc, const char *ptr, const char *end, in PREFIX()
507 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
508 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
509 CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
511 return PREFIX(scanCharRef)(enc, ptr + MINBPC(enc), end, nextTokPtr); in PREFIX()
513 *nextTokPtr = ptr; in PREFIX()
516 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
517 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
518 CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
520 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
523 *nextTokPtr = ptr; in PREFIX()
533 PREFIX(scanAtts)(const ENCODING *enc, const char *ptr, const char *end, in PREFIX()
539 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
540 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
541 CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
545 *nextTokPtr = ptr; in PREFIX()
549 ptr += MINBPC(enc); in PREFIX()
550 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
551 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
552 CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
554 *nextTokPtr = ptr; in PREFIX()
563 ptr += MINBPC(enc); in PREFIX()
564 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
565 t = BYTE_TYPE(enc, ptr); in PREFIX()
574 *nextTokPtr = ptr; in PREFIX()
586 ptr += MINBPC(enc); in PREFIX()
587 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
588 open = BYTE_TYPE(enc, ptr); in PREFIX()
597 *nextTokPtr = ptr; in PREFIX()
601 ptr += MINBPC(enc); in PREFIX()
605 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
606 t = BYTE_TYPE(enc, ptr); in PREFIX()
610 INVALID_CASES(ptr, nextTokPtr) in PREFIX()
613 int tok = PREFIX(scanRef)(enc, ptr + MINBPC(enc), end, &ptr); in PREFIX()
616 *nextTokPtr = ptr; in PREFIX()
622 *nextTokPtr = ptr; in PREFIX()
625 ptr += MINBPC(enc); in PREFIX()
629 ptr += MINBPC(enc); in PREFIX()
630 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
631 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
641 *nextTokPtr = ptr; in PREFIX()
646 ptr += MINBPC(enc); in PREFIX()
647 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
648 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
649 CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
654 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
658 ptr += MINBPC(enc); in PREFIX()
659 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
660 if (!CHAR_MATCHES(enc, ptr, ASCII_GT)) { in PREFIX()
661 *nextTokPtr = ptr; in PREFIX()
664 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
667 *nextTokPtr = ptr; in PREFIX()
675 *nextTokPtr = ptr; in PREFIX()
685 PREFIX(scanLt)(const ENCODING *enc, const char *ptr, const char *end, in PREFIX()
691 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
692 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
693 CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
695 ptr += MINBPC(enc); in PREFIX()
696 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
697 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
699 return PREFIX(scanComment)(enc, ptr + MINBPC(enc), end, nextTokPtr); in PREFIX()
701 return PREFIX(scanCdataSection)(enc, ptr + MINBPC(enc), in PREFIX()
704 *nextTokPtr = ptr; in PREFIX()
707 return PREFIX(scanPi)(enc, ptr + MINBPC(enc), end, nextTokPtr); in PREFIX()
709 return PREFIX(scanEndTag)(enc, ptr + MINBPC(enc), end, nextTokPtr); in PREFIX()
711 *nextTokPtr = ptr; in PREFIX()
718 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
719 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
720 CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
724 *nextTokPtr = ptr; in PREFIX()
728 ptr += MINBPC(enc); in PREFIX()
729 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
730 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
731 CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
733 *nextTokPtr = ptr; in PREFIX()
740 ptr += MINBPC(enc); in PREFIX()
741 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
742 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
743 CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
749 ptr += MINBPC(enc); in PREFIX()
752 *nextTokPtr = ptr; in PREFIX()
755 return PREFIX(scanAtts)(enc, ptr, end, nextTokPtr); in PREFIX()
761 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
765 ptr += MINBPC(enc); in PREFIX()
766 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
767 if (!CHAR_MATCHES(enc, ptr, ASCII_GT)) { in PREFIX()
768 *nextTokPtr = ptr; in PREFIX()
771 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
774 *nextTokPtr = ptr; in PREFIX()
782 PREFIX(contentTok)(const ENCODING *enc, const char *ptr, const char *end, in PREFIX()
785 if (ptr >= end) in PREFIX()
788 size_t n = end - ptr; in PREFIX()
793 end = ptr + n; in PREFIX()
796 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
798 return PREFIX(scanLt)(enc, ptr + MINBPC(enc), end, nextTokPtr); in PREFIX()
800 return PREFIX(scanRef)(enc, ptr + MINBPC(enc), end, nextTokPtr); in PREFIX()
802 ptr += MINBPC(enc); in PREFIX()
803 if (! HAS_CHAR(enc, ptr, end)) in PREFIX()
805 if (BYTE_TYPE(enc, ptr) == BT_LF) in PREFIX()
806 ptr += MINBPC(enc); in PREFIX()
807 *nextTokPtr = ptr; in PREFIX()
810 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
813 ptr += MINBPC(enc); in PREFIX()
814 if (! HAS_CHAR(enc, ptr, end)) in PREFIX()
816 if (!CHAR_MATCHES(enc, ptr, ASCII_RSQB)) in PREFIX()
818 ptr += MINBPC(enc); in PREFIX()
819 if (! HAS_CHAR(enc, ptr, end)) in PREFIX()
821 if (!CHAR_MATCHES(enc, ptr, ASCII_GT)) { in PREFIX()
822 ptr -= MINBPC(enc); in PREFIX()
825 *nextTokPtr = ptr; in PREFIX()
827 INVALID_CASES(ptr, nextTokPtr) in PREFIX()
829 ptr += MINBPC(enc); in PREFIX()
832 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
833 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
836 if (end - ptr < n || IS_INVALID_CHAR(enc, ptr, n)) { \ in PREFIX()
837 *nextTokPtr = ptr; \ in PREFIX()
840 ptr += n; \ in PREFIX()
845 if (HAS_CHARS(enc, ptr, end, 2)) { in PREFIX()
846 if (!CHAR_MATCHES(enc, ptr + MINBPC(enc), ASCII_RSQB)) { in PREFIX()
847 ptr += MINBPC(enc); in PREFIX()
850 if (HAS_CHARS(enc, ptr, end, 3)) { in PREFIX()
851 if (!CHAR_MATCHES(enc, ptr + 2*MINBPC(enc), ASCII_GT)) { in PREFIX()
852 ptr += MINBPC(enc); in PREFIX()
855 *nextTokPtr = ptr + 2*MINBPC(enc); in PREFIX()
867 *nextTokPtr = ptr; in PREFIX()
870 ptr += MINBPC(enc); in PREFIX()
874 *nextTokPtr = ptr; in PREFIX()
881 PREFIX(scanPercent)(const ENCODING *enc, const char *ptr, const char *end, in PREFIX()
884 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
885 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
886 CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
888 *nextTokPtr = ptr; in PREFIX()
891 *nextTokPtr = ptr; in PREFIX()
894 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
895 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
896 CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
898 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
901 *nextTokPtr = ptr; in PREFIX()
909 PREFIX(scanPoundName)(const ENCODING *enc, const char *ptr, const char *end, in PREFIX()
912 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
913 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
914 CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
916 *nextTokPtr = ptr; in PREFIX()
919 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
920 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
921 CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
924 *nextTokPtr = ptr; in PREFIX()
927 *nextTokPtr = ptr; in PREFIX()
936 const char *ptr, const char *end, in PREFIX()
939 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
940 int t = BYTE_TYPE(enc, ptr); in PREFIX()
942 INVALID_CASES(ptr, nextTokPtr) in PREFIX()
945 ptr += MINBPC(enc); in PREFIX()
948 if (! HAS_CHAR(enc, ptr, end)) in PREFIX()
950 *nextTokPtr = ptr; in PREFIX()
951 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
959 ptr += MINBPC(enc); in PREFIX()
967 PREFIX(prologTok)(const ENCODING *enc, const char *ptr, const char *end, in PREFIX()
971 if (ptr >= end) in PREFIX()
974 size_t n = end - ptr; in PREFIX()
979 end = ptr + n; in PREFIX()
982 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
984 return PREFIX(scanLit)(BT_QUOT, enc, ptr + MINBPC(enc), end, nextTokPtr); in PREFIX()
986 return PREFIX(scanLit)(BT_APOS, enc, ptr + MINBPC(enc), end, nextTokPtr); in PREFIX()
989 ptr += MINBPC(enc); in PREFIX()
990 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
991 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
993 return PREFIX(scanDecl)(enc, ptr + MINBPC(enc), end, nextTokPtr); in PREFIX()
995 return PREFIX(scanPi)(enc, ptr + MINBPC(enc), end, nextTokPtr); in PREFIX()
1002 *nextTokPtr = ptr - MINBPC(enc); in PREFIX()
1005 *nextTokPtr = ptr; in PREFIX()
1009 if (ptr + MINBPC(enc) == end) { in PREFIX()
1017 ptr += MINBPC(enc); in PREFIX()
1018 if (! HAS_CHAR(enc, ptr, end)) in PREFIX()
1020 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
1025 if (ptr + MINBPC(enc) != end) in PREFIX()
1029 *nextTokPtr = ptr; in PREFIX()
1033 *nextTokPtr = ptr; in PREFIX()
1036 return PREFIX(scanPercent)(enc, ptr + MINBPC(enc), end, nextTokPtr); in PREFIX()
1038 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
1041 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
1044 ptr += MINBPC(enc); in PREFIX()
1045 if (! HAS_CHAR(enc, ptr, end)) in PREFIX()
1047 if (CHAR_MATCHES(enc, ptr, ASCII_RSQB)) { in PREFIX()
1048 REQUIRE_CHARS(enc, ptr, end, 2); in PREFIX()
1049 if (CHAR_MATCHES(enc, ptr + MINBPC(enc), ASCII_GT)) { in PREFIX()
1050 *nextTokPtr = ptr + 2*MINBPC(enc); in PREFIX()
1054 *nextTokPtr = ptr; in PREFIX()
1057 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
1060 ptr += MINBPC(enc); in PREFIX()
1061 if (! HAS_CHAR(enc, ptr, end)) in PREFIX()
1063 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
1065 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
1068 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
1071 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
1076 *nextTokPtr = ptr; in PREFIX()
1079 *nextTokPtr = ptr; in PREFIX()
1082 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
1085 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
1088 return PREFIX(scanPoundName)(enc, ptr + MINBPC(enc), end, nextTokPtr); in PREFIX()
1091 if (end - ptr < n) \ in PREFIX()
1093 if (IS_NMSTRT_CHAR(enc, ptr, n)) { \ in PREFIX()
1094 ptr += n; \ in PREFIX()
1098 if (IS_NAME_CHAR(enc, ptr, n)) { \ in PREFIX()
1099 ptr += n; \ in PREFIX()
1103 *nextTokPtr = ptr; \ in PREFIX()
1110 ptr += MINBPC(enc); in PREFIX()
1119 ptr += MINBPC(enc); in PREFIX()
1122 if (IS_NMSTRT_CHAR_MINBPC(enc, ptr)) { in PREFIX()
1123 ptr += MINBPC(enc); in PREFIX()
1127 if (IS_NAME_CHAR_MINBPC(enc, ptr)) { in PREFIX()
1128 ptr += MINBPC(enc); in PREFIX()
1134 *nextTokPtr = ptr; in PREFIX()
1137 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
1138 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
1139 CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
1143 *nextTokPtr = ptr; in PREFIX()
1147 ptr += MINBPC(enc); in PREFIX()
1150 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
1152 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
1153 CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
1167 *nextTokPtr = ptr; in PREFIX()
1170 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
1174 *nextTokPtr = ptr; in PREFIX()
1177 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
1181 *nextTokPtr = ptr; in PREFIX()
1184 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
1187 *nextTokPtr = ptr; in PREFIX()
1195 PREFIX(attributeValueTok)(const ENCODING *enc, const char *ptr, in PREFIX()
1199 if (ptr >= end) in PREFIX()
1201 else if (! HAS_CHAR(enc, ptr, end)) in PREFIX()
1203 start = ptr; in PREFIX()
1204 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
1205 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
1207 case BT_LEAD ## n: ptr += n; break; in PREFIX()
1211 if (ptr == start) in PREFIX()
1212 return PREFIX(scanRef)(enc, ptr + MINBPC(enc), end, nextTokPtr); in PREFIX()
1213 *nextTokPtr = ptr; in PREFIX()
1217 *nextTokPtr = ptr; in PREFIX()
1220 if (ptr == start) { in PREFIX()
1221 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
1224 *nextTokPtr = ptr; in PREFIX()
1227 if (ptr == start) { in PREFIX()
1228 ptr += MINBPC(enc); in PREFIX()
1229 if (! HAS_CHAR(enc, ptr, end)) in PREFIX()
1231 if (BYTE_TYPE(enc, ptr) == BT_LF) in PREFIX()
1232 ptr += MINBPC(enc); in PREFIX()
1233 *nextTokPtr = ptr; in PREFIX()
1236 *nextTokPtr = ptr; in PREFIX()
1239 if (ptr == start) { in PREFIX()
1240 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
1243 *nextTokPtr = ptr; in PREFIX()
1246 ptr += MINBPC(enc); in PREFIX()
1250 *nextTokPtr = ptr; in PREFIX()
1255 PREFIX(entityValueTok)(const ENCODING *enc, const char *ptr, in PREFIX()
1259 if (ptr >= end) in PREFIX()
1261 else if (! HAS_CHAR(enc, ptr, end)) in PREFIX()
1263 start = ptr; in PREFIX()
1264 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
1265 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
1267 case BT_LEAD ## n: ptr += n; break; in PREFIX()
1271 if (ptr == start) in PREFIX()
1272 return PREFIX(scanRef)(enc, ptr + MINBPC(enc), end, nextTokPtr); in PREFIX()
1273 *nextTokPtr = ptr; in PREFIX()
1276 if (ptr == start) { in PREFIX()
1277 int tok = PREFIX(scanPercent)(enc, ptr + MINBPC(enc), in PREFIX()
1281 *nextTokPtr = ptr; in PREFIX()
1284 if (ptr == start) { in PREFIX()
1285 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
1288 *nextTokPtr = ptr; in PREFIX()
1291 if (ptr == start) { in PREFIX()
1292 ptr += MINBPC(enc); in PREFIX()
1293 if (! HAS_CHAR(enc, ptr, end)) in PREFIX()
1295 if (BYTE_TYPE(enc, ptr) == BT_LF) in PREFIX()
1296 ptr += MINBPC(enc); in PREFIX()
1297 *nextTokPtr = ptr; in PREFIX()
1300 *nextTokPtr = ptr; in PREFIX()
1303 ptr += MINBPC(enc); in PREFIX()
1307 *nextTokPtr = ptr; in PREFIX()
1314 PREFIX(ignoreSectionTok)(const ENCODING *enc, const char *ptr, in PREFIX()
1319 size_t n = end - ptr; in PREFIX()
1322 end = ptr + n; in PREFIX()
1325 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
1326 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
1327 INVALID_CASES(ptr, nextTokPtr) in PREFIX()
1329 ptr += MINBPC(enc); in PREFIX()
1330 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
1331 if (CHAR_MATCHES(enc, ptr, ASCII_EXCL)) { in PREFIX()
1332 ptr += MINBPC(enc); in PREFIX()
1333 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
1334 if (CHAR_MATCHES(enc, ptr, ASCII_LSQB)) { in PREFIX()
1336 ptr += MINBPC(enc); in PREFIX()
1341 ptr += MINBPC(enc); in PREFIX()
1342 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
1343 if (CHAR_MATCHES(enc, ptr, ASCII_RSQB)) { in PREFIX()
1344 ptr += MINBPC(enc); in PREFIX()
1345 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
1346 if (CHAR_MATCHES(enc, ptr, ASCII_GT)) { in PREFIX()
1347 ptr += MINBPC(enc); in PREFIX()
1349 *nextTokPtr = ptr; in PREFIX()
1357 ptr += MINBPC(enc); in PREFIX()
1367 PREFIX(isPublicId)(const ENCODING *enc, const char *ptr, const char *end, in PREFIX()
1370 ptr += MINBPC(enc); in PREFIX()
1372 for (; HAS_CHAR(enc, ptr, end); ptr += MINBPC(enc)) { in PREFIX()
1373 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
1397 if (CHAR_MATCHES(enc, ptr, ASCII_TAB)) { in PREFIX()
1398 *badPtr = ptr; in PREFIX()
1404 if (!(BYTE_TO_ASCII(enc, ptr) & ~0x7f)) in PREFIX()
1407 switch (BYTE_TO_ASCII(enc, ptr)) { in PREFIX()
1412 *badPtr = ptr; in PREFIX()
1427 PREFIX(getAtts)(const ENCODING *enc, const char *ptr, in PREFIX()
1435 for (ptr += MINBPC(enc);; ptr += MINBPC(enc)) { in PREFIX()
1436 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
1440 atts[nAtts].name = ptr; \ in PREFIX()
1446 case BT_LEAD ## n: START_NAME ptr += (n - MINBPC(enc)); break; in PREFIX()
1458 atts[nAtts].valuePtr = ptr + MINBPC(enc); in PREFIX()
1465 atts[nAtts].valueEnd = ptr; in PREFIX()
1472 atts[nAtts].valuePtr = ptr + MINBPC(enc); in PREFIX()
1479 atts[nAtts].valueEnd = ptr; in PREFIX()
1493 && (ptr == atts[nAtts].valuePtr in PREFIX()
1494 || BYTE_TO_ASCII(enc, ptr) != ASCII_SPACE in PREFIX()
1495 || BYTE_TO_ASCII(enc, ptr + MINBPC(enc)) == ASCII_SPACE in PREFIX()
1496 || BYTE_TYPE(enc, ptr + MINBPC(enc)) == open)) in PREFIX()
1520 PREFIX(charRefNumber)(const ENCODING *UNUSED_P(enc), const char *ptr) in PREFIX()
1524 ptr += 2*MINBPC(enc); in PREFIX()
1525 if (CHAR_MATCHES(enc, ptr, ASCII_x)) { in PREFIX()
1526 for (ptr += MINBPC(enc); in PREFIX()
1527 !CHAR_MATCHES(enc, ptr, ASCII_SEMI); in PREFIX()
1528 ptr += MINBPC(enc)) { in PREFIX()
1529 int c = BYTE_TO_ASCII(enc, ptr); in PREFIX()
1552 for (; !CHAR_MATCHES(enc, ptr, ASCII_SEMI); ptr += MINBPC(enc)) { in PREFIX()
1553 int c = BYTE_TO_ASCII(enc, ptr); in PREFIX()
1564 PREFIX(predefinedEntityName)(const ENCODING *UNUSED_P(enc), const char *ptr, in PREFIX()
1567 switch ((end - ptr)/MINBPC(enc)) { in PREFIX()
1569 if (CHAR_MATCHES(enc, ptr + MINBPC(enc), ASCII_t)) { in PREFIX()
1570 switch (BYTE_TO_ASCII(enc, ptr)) { in PREFIX()
1579 if (CHAR_MATCHES(enc, ptr, ASCII_a)) { in PREFIX()
1580 ptr += MINBPC(enc); in PREFIX()
1581 if (CHAR_MATCHES(enc, ptr, ASCII_m)) { in PREFIX()
1582 ptr += MINBPC(enc); in PREFIX()
1583 if (CHAR_MATCHES(enc, ptr, ASCII_p)) in PREFIX()
1589 switch (BYTE_TO_ASCII(enc, ptr)) { in PREFIX()
1591 ptr += MINBPC(enc); in PREFIX()
1592 if (CHAR_MATCHES(enc, ptr, ASCII_u)) { in PREFIX()
1593 ptr += MINBPC(enc); in PREFIX()
1594 if (CHAR_MATCHES(enc, ptr, ASCII_o)) { in PREFIX()
1595 ptr += MINBPC(enc); in PREFIX()
1596 if (CHAR_MATCHES(enc, ptr, ASCII_t)) in PREFIX()
1602 ptr += MINBPC(enc); in PREFIX()
1603 if (CHAR_MATCHES(enc, ptr, ASCII_p)) { in PREFIX()
1604 ptr += MINBPC(enc); in PREFIX()
1605 if (CHAR_MATCHES(enc, ptr, ASCII_o)) { in PREFIX()
1606 ptr += MINBPC(enc); in PREFIX()
1607 if (CHAR_MATCHES(enc, ptr, ASCII_s)) in PREFIX()
1695 PREFIX(nameLength)(const ENCODING *enc, const char *ptr) in PREFIX()
1697 const char *start = ptr; in PREFIX()
1699 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
1701 case BT_LEAD ## n: ptr += n; break; in PREFIX()
1713 ptr += MINBPC(enc); in PREFIX()
1716 return (int)(ptr - start); in PREFIX()
1722 PREFIX(skipS)(const ENCODING *enc, const char *ptr) in PREFIX()
1725 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
1729 ptr += MINBPC(enc); in PREFIX()
1732 return ptr; in PREFIX()
1739 const char *ptr, in PREFIX()
1743 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
1744 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
1747 ptr += n; \ in PREFIX()
1754 ptr += MINBPC(enc); in PREFIX()
1758 ptr += MINBPC(enc); in PREFIX()
1759 if (HAS_CHAR(enc, ptr, end) && BYTE_TYPE(enc, ptr) == BT_LF) in PREFIX()
1760 ptr += MINBPC(enc); in PREFIX()
1764 ptr += MINBPC(enc); in PREFIX()