Lines Matching refs:ptr

44 #    define IS_INVALID_CHAR(enc, ptr, n) (0)  argument
47 # define INVALID_LEAD_CASE(n, ptr, nextTokPtr) \ argument
49 if (end - ptr < n) \
51 if (IS_INVALID_CHAR(enc, ptr, n)) { \
52 *(nextTokPtr) = (ptr); \
55 ptr += n; \
58 # define INVALID_CASES(ptr, nextTokPtr) \ argument
59 INVALID_LEAD_CASE(2, ptr, nextTokPtr) \
60 INVALID_LEAD_CASE(3, ptr, nextTokPtr) \
61 INVALID_LEAD_CASE(4, ptr, nextTokPtr) \
65 *(nextTokPtr) = (ptr); \
68 # define CHECK_NAME_CASE(n, enc, ptr, end, nextTokPtr) \ argument
70 if (end - ptr < n) \
72 if (IS_INVALID_CHAR(enc, ptr, n) || ! IS_NAME_CHAR(enc, ptr, n)) { \
73 *nextTokPtr = ptr; \
76 ptr += n; \
79 # define CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) \ argument
81 if (! IS_NAME_CHAR_MINBPC(enc, ptr)) { \
82 *nextTokPtr = ptr; \
91 ptr += MINBPC(enc); \
93 CHECK_NAME_CASE(2, enc, ptr, end, nextTokPtr) \
94 CHECK_NAME_CASE(3, enc, ptr, end, nextTokPtr) \
95 CHECK_NAME_CASE(4, enc, ptr, end, nextTokPtr)
97 # define CHECK_NMSTRT_CASE(n, enc, ptr, end, nextTokPtr) \ argument
99 if (end - ptr < n) \
101 if (IS_INVALID_CHAR(enc, ptr, n) || ! IS_NMSTRT_CHAR(enc, ptr, n)) { \
102 *nextTokPtr = ptr; \
105 ptr += n; \
108 # define CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr) \ argument
110 if (! IS_NMSTRT_CHAR_MINBPC(enc, ptr)) { \
111 *nextTokPtr = ptr; \
117 ptr += MINBPC(enc); \
119 CHECK_NMSTRT_CASE(2, enc, ptr, end, nextTokPtr) \
120 CHECK_NMSTRT_CASE(3, enc, ptr, end, nextTokPtr) \
121 CHECK_NMSTRT_CASE(4, enc, ptr, end, nextTokPtr)
127 # define HAS_CHARS(enc, ptr, end, count) (end - ptr >= count * MINBPC(enc)) argument
129 # define HAS_CHAR(enc, ptr, end) HAS_CHARS(enc, ptr, end, 1) argument
131 # define REQUIRE_CHARS(enc, ptr, end, count) \ argument
133 if (! HAS_CHARS(enc, ptr, end, count)) { \
138 # define REQUIRE_CHAR(enc, ptr, end) REQUIRE_CHARS(enc, ptr, end, 1) argument
143 PREFIX(scanComment)(const ENCODING *enc, const char *ptr, const char *end, in PREFIX()
145 if (HAS_CHAR(enc, ptr, end)) { in PREFIX()
146 if (! CHAR_MATCHES(enc, ptr, ASCII_MINUS)) { in PREFIX()
147 *nextTokPtr = ptr; in PREFIX()
150 ptr += MINBPC(enc); in PREFIX()
151 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
152 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
153 INVALID_CASES(ptr, nextTokPtr) in PREFIX()
155 ptr += MINBPC(enc); in PREFIX()
156 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
157 if (CHAR_MATCHES(enc, ptr, ASCII_MINUS)) { in PREFIX()
158 ptr += MINBPC(enc); in PREFIX()
159 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
160 if (! CHAR_MATCHES(enc, ptr, ASCII_GT)) { in PREFIX()
161 *nextTokPtr = ptr; in PREFIX()
164 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
169 ptr += MINBPC(enc); in PREFIX()
180 PREFIX(scanDecl)(const ENCODING *enc, const char *ptr, const char *end, in PREFIX()
182 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
183 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
185 return PREFIX(scanComment)(enc, ptr + MINBPC(enc), end, nextTokPtr); in PREFIX()
187 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
191 ptr += MINBPC(enc); in PREFIX()
194 *nextTokPtr = ptr; in PREFIX()
197 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
198 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
200 REQUIRE_CHARS(enc, ptr, end, 2); in PREFIX()
202 switch (BYTE_TYPE(enc, ptr + MINBPC(enc))) { in PREFIX()
207 *nextTokPtr = ptr; in PREFIX()
214 *nextTokPtr = ptr; in PREFIX()
218 ptr += MINBPC(enc); in PREFIX()
221 *nextTokPtr = ptr; in PREFIX()
229 PREFIX(checkPiTarget)(const ENCODING *enc, const char *ptr, const char *end, in PREFIX()
234 if (end - ptr != MINBPC(enc) * 3) in PREFIX()
236 switch (BYTE_TO_ASCII(enc, ptr)) { in PREFIX()
245 ptr += MINBPC(enc); in PREFIX()
246 switch (BYTE_TO_ASCII(enc, ptr)) { in PREFIX()
255 ptr += MINBPC(enc); in PREFIX()
256 switch (BYTE_TO_ASCII(enc, ptr)) { in PREFIX()
274 PREFIX(scanPi)(const ENCODING *enc, const char *ptr, const char *end, in PREFIX()
277 const char *target = ptr; in PREFIX()
278 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
279 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
280 CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
282 *nextTokPtr = ptr; in PREFIX()
285 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
286 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
287 CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
291 if (! PREFIX(checkPiTarget)(enc, target, ptr, &tok)) { in PREFIX()
292 *nextTokPtr = ptr; in PREFIX()
295 ptr += MINBPC(enc); in PREFIX()
296 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
297 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
298 INVALID_CASES(ptr, nextTokPtr) in PREFIX()
300 ptr += MINBPC(enc); in PREFIX()
301 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
302 if (CHAR_MATCHES(enc, ptr, ASCII_GT)) { in PREFIX()
303 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
308 ptr += MINBPC(enc); in PREFIX()
314 if (! PREFIX(checkPiTarget)(enc, target, ptr, &tok)) { in PREFIX()
315 *nextTokPtr = ptr; in PREFIX()
318 ptr += MINBPC(enc); in PREFIX()
319 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
320 if (CHAR_MATCHES(enc, ptr, ASCII_GT)) { in PREFIX()
321 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
326 *nextTokPtr = ptr; in PREFIX()
334 PREFIX(scanCdataSection)(const ENCODING *enc, const char *ptr, const char *end, in PREFIX()
341 REQUIRE_CHARS(enc, ptr, end, 6); in PREFIX()
342 for (i = 0; i < 6; i++, ptr += MINBPC(enc)) { in PREFIX()
343 if (! CHAR_MATCHES(enc, ptr, CDATA_LSQB[i])) { in PREFIX()
344 *nextTokPtr = ptr; in PREFIX()
348 *nextTokPtr = ptr; in PREFIX()
353 PREFIX(cdataSectionTok)(const ENCODING *enc, const char *ptr, const char *end, in PREFIX()
355 if (ptr >= end) in PREFIX()
358 size_t n = end - ptr; in PREFIX()
363 end = ptr + n; in PREFIX()
366 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
368 ptr += MINBPC(enc); in PREFIX()
369 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
370 if (! CHAR_MATCHES(enc, ptr, ASCII_RSQB)) in PREFIX()
372 ptr += MINBPC(enc); in PREFIX()
373 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
374 if (! CHAR_MATCHES(enc, ptr, ASCII_GT)) { in PREFIX()
375 ptr -= MINBPC(enc); in PREFIX()
378 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
381 ptr += MINBPC(enc); in PREFIX()
382 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
383 if (BYTE_TYPE(enc, ptr) == BT_LF) in PREFIX()
384 ptr += MINBPC(enc); in PREFIX()
385 *nextTokPtr = ptr; in PREFIX()
388 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
390 INVALID_CASES(ptr, nextTokPtr) in PREFIX()
392 ptr += MINBPC(enc); in PREFIX()
395 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
396 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
399 if (end - ptr < n || IS_INVALID_CHAR(enc, ptr, n)) { \ in PREFIX()
400 *nextTokPtr = ptr; \ in PREFIX()
403 ptr += n; \ in PREFIX()
415 *nextTokPtr = ptr; in PREFIX()
418 ptr += MINBPC(enc); in PREFIX()
422 *nextTokPtr = ptr; in PREFIX()
429 PREFIX(scanEndTag)(const ENCODING *enc, const char *ptr, const char *end, in PREFIX()
431 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
432 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
433 CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
435 *nextTokPtr = ptr; in PREFIX()
438 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
439 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
440 CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
444 for (ptr += MINBPC(enc); HAS_CHAR(enc, ptr, end); ptr += MINBPC(enc)) { in PREFIX()
445 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
451 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
454 *nextTokPtr = ptr; in PREFIX()
463 ptr += MINBPC(enc); in PREFIX()
467 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
470 *nextTokPtr = ptr; in PREFIX()
480 PREFIX(scanHexCharRef)(const ENCODING *enc, const char *ptr, const char *end, in PREFIX()
482 if (HAS_CHAR(enc, ptr, end)) { in PREFIX()
483 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
488 *nextTokPtr = ptr; in PREFIX()
491 for (ptr += MINBPC(enc); HAS_CHAR(enc, ptr, end); ptr += MINBPC(enc)) { in PREFIX()
492 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
497 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
500 *nextTokPtr = ptr; in PREFIX()
511 PREFIX(scanCharRef)(const ENCODING *enc, const char *ptr, const char *end, in PREFIX()
513 if (HAS_CHAR(enc, ptr, end)) { in PREFIX()
514 if (CHAR_MATCHES(enc, ptr, ASCII_x)) in PREFIX()
515 return PREFIX(scanHexCharRef)(enc, ptr + MINBPC(enc), end, nextTokPtr); in PREFIX()
516 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
520 *nextTokPtr = ptr; in PREFIX()
523 for (ptr += MINBPC(enc); HAS_CHAR(enc, ptr, end); ptr += MINBPC(enc)) { in PREFIX()
524 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
528 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
531 *nextTokPtr = ptr; in PREFIX()
542 PREFIX(scanRef)(const ENCODING *enc, const char *ptr, const char *end, in PREFIX()
544 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
545 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
546 CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
548 return PREFIX(scanCharRef)(enc, ptr + MINBPC(enc), end, nextTokPtr); in PREFIX()
550 *nextTokPtr = ptr; in PREFIX()
553 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
554 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
555 CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
557 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
560 *nextTokPtr = ptr; in PREFIX()
570 PREFIX(scanAtts)(const ENCODING *enc, const char *ptr, const char *end, in PREFIX()
575 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
576 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
577 CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
581 *nextTokPtr = ptr; in PREFIX()
585 ptr += MINBPC(enc); in PREFIX()
586 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
587 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
588 CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
590 *nextTokPtr = ptr; in PREFIX()
601 ptr += MINBPC(enc); in PREFIX()
602 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
603 t = BYTE_TYPE(enc, ptr); in PREFIX()
612 *nextTokPtr = ptr; in PREFIX()
623 ptr += MINBPC(enc); in PREFIX()
624 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
625 open = BYTE_TYPE(enc, ptr); in PREFIX()
634 *nextTokPtr = ptr; in PREFIX()
638 ptr += MINBPC(enc); in PREFIX()
642 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
643 t = BYTE_TYPE(enc, ptr); in PREFIX()
647 INVALID_CASES(ptr, nextTokPtr) in PREFIX()
649 int tok = PREFIX(scanRef)(enc, ptr + MINBPC(enc), end, &ptr); in PREFIX()
652 *nextTokPtr = ptr; in PREFIX()
658 *nextTokPtr = ptr; in PREFIX()
661 ptr += MINBPC(enc); in PREFIX()
665 ptr += MINBPC(enc); in PREFIX()
666 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
667 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
677 *nextTokPtr = ptr; in PREFIX()
682 ptr += MINBPC(enc); in PREFIX()
683 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
684 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
685 CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
692 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
696 ptr += MINBPC(enc); in PREFIX()
697 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
698 if (! CHAR_MATCHES(enc, ptr, ASCII_GT)) { in PREFIX()
699 *nextTokPtr = ptr; in PREFIX()
702 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
705 *nextTokPtr = ptr; in PREFIX()
713 *nextTokPtr = ptr; in PREFIX()
723 PREFIX(scanLt)(const ENCODING *enc, const char *ptr, const char *end, in PREFIX()
728 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
729 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
730 CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
732 ptr += MINBPC(enc); in PREFIX()
733 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
734 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
736 return PREFIX(scanComment)(enc, ptr + MINBPC(enc), end, nextTokPtr); in PREFIX()
738 return PREFIX(scanCdataSection)(enc, ptr + MINBPC(enc), end, nextTokPtr); in PREFIX()
740 *nextTokPtr = ptr; in PREFIX()
743 return PREFIX(scanPi)(enc, ptr + MINBPC(enc), end, nextTokPtr); in PREFIX()
745 return PREFIX(scanEndTag)(enc, ptr + MINBPC(enc), end, nextTokPtr); in PREFIX()
747 *nextTokPtr = ptr; in PREFIX()
754 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
755 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
756 CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
760 *nextTokPtr = ptr; in PREFIX()
764 ptr += MINBPC(enc); in PREFIX()
765 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
766 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
767 CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
769 *nextTokPtr = ptr; in PREFIX()
777 ptr += MINBPC(enc); in PREFIX()
778 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
779 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
780 CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
788 ptr += MINBPC(enc); in PREFIX()
791 *nextTokPtr = ptr; in PREFIX()
794 return PREFIX(scanAtts)(enc, ptr, end, nextTokPtr); in PREFIX()
800 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
804 ptr += MINBPC(enc); in PREFIX()
805 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
806 if (! CHAR_MATCHES(enc, ptr, ASCII_GT)) { in PREFIX()
807 *nextTokPtr = ptr; in PREFIX()
810 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
813 *nextTokPtr = ptr; in PREFIX()
821 PREFIX(contentTok)(const ENCODING *enc, const char *ptr, const char *end, in PREFIX()
823 if (ptr >= end) in PREFIX()
826 size_t n = end - ptr; in PREFIX()
831 end = ptr + n; in PREFIX()
834 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
836 return PREFIX(scanLt)(enc, ptr + MINBPC(enc), end, nextTokPtr); in PREFIX()
838 return PREFIX(scanRef)(enc, ptr + MINBPC(enc), end, nextTokPtr); in PREFIX()
840 ptr += MINBPC(enc); in PREFIX()
841 if (! HAS_CHAR(enc, ptr, end)) in PREFIX()
843 if (BYTE_TYPE(enc, ptr) == BT_LF) in PREFIX()
844 ptr += MINBPC(enc); in PREFIX()
845 *nextTokPtr = ptr; in PREFIX()
848 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
851 ptr += MINBPC(enc); in PREFIX()
852 if (! HAS_CHAR(enc, ptr, end)) in PREFIX()
854 if (! CHAR_MATCHES(enc, ptr, ASCII_RSQB)) in PREFIX()
856 ptr += MINBPC(enc); in PREFIX()
857 if (! HAS_CHAR(enc, ptr, end)) in PREFIX()
859 if (! CHAR_MATCHES(enc, ptr, ASCII_GT)) { in PREFIX()
860 ptr -= MINBPC(enc); in PREFIX()
863 *nextTokPtr = ptr; in PREFIX()
865 INVALID_CASES(ptr, nextTokPtr) in PREFIX()
867 ptr += MINBPC(enc); in PREFIX()
870 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
871 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
874 if (end - ptr < n || IS_INVALID_CHAR(enc, ptr, n)) { \ in PREFIX()
875 *nextTokPtr = ptr; \ in PREFIX()
878 ptr += n; \ in PREFIX()
885 if (HAS_CHARS(enc, ptr, end, 2)) { in PREFIX()
886 if (! CHAR_MATCHES(enc, ptr + MINBPC(enc), ASCII_RSQB)) { in PREFIX()
887 ptr += MINBPC(enc); in PREFIX()
890 if (HAS_CHARS(enc, ptr, end, 3)) { in PREFIX()
891 if (! CHAR_MATCHES(enc, ptr + 2 * MINBPC(enc), ASCII_GT)) { in PREFIX()
892 ptr += MINBPC(enc); in PREFIX()
895 *nextTokPtr = ptr + 2 * MINBPC(enc); in PREFIX()
907 *nextTokPtr = ptr; in PREFIX()
910 ptr += MINBPC(enc); in PREFIX()
914 *nextTokPtr = ptr; in PREFIX()
921 PREFIX(scanPercent)(const ENCODING *enc, const char *ptr, const char *end, in PREFIX()
923 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
924 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
925 CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
930 *nextTokPtr = ptr; in PREFIX()
933 *nextTokPtr = ptr; in PREFIX()
936 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
937 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
938 CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
940 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
943 *nextTokPtr = ptr; in PREFIX()
951 PREFIX(scanPoundName)(const ENCODING *enc, const char *ptr, const char *end, in PREFIX()
953 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
954 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
955 CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
957 *nextTokPtr = ptr; in PREFIX()
960 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
961 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
962 CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
970 *nextTokPtr = ptr; in PREFIX()
973 *nextTokPtr = ptr; in PREFIX()
981 PREFIX(scanLit)(int open, const ENCODING *enc, const char *ptr, const char *end, in PREFIX()
983 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
984 int t = BYTE_TYPE(enc, ptr); in PREFIX()
986 INVALID_CASES(ptr, nextTokPtr) in PREFIX()
989 ptr += MINBPC(enc); in PREFIX()
992 if (! HAS_CHAR(enc, ptr, end)) in PREFIX()
994 *nextTokPtr = ptr; in PREFIX()
995 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
1007 ptr += MINBPC(enc); in PREFIX()
1015 PREFIX(prologTok)(const ENCODING *enc, const char *ptr, const char *end, in PREFIX()
1018 if (ptr >= end) in PREFIX()
1021 size_t n = end - ptr; in PREFIX()
1026 end = ptr + n; in PREFIX()
1029 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
1031 return PREFIX(scanLit)(BT_QUOT, enc, ptr + MINBPC(enc), end, nextTokPtr); in PREFIX()
1033 return PREFIX(scanLit)(BT_APOS, enc, ptr + MINBPC(enc), end, nextTokPtr); in PREFIX()
1035 ptr += MINBPC(enc); in PREFIX()
1036 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
1037 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
1039 return PREFIX(scanDecl)(enc, ptr + MINBPC(enc), end, nextTokPtr); in PREFIX()
1041 return PREFIX(scanPi)(enc, ptr + MINBPC(enc), end, nextTokPtr); in PREFIX()
1048 *nextTokPtr = ptr - MINBPC(enc); in PREFIX()
1051 *nextTokPtr = ptr; in PREFIX()
1055 if (ptr + MINBPC(enc) == end) { in PREFIX()
1064 ptr += MINBPC(enc); in PREFIX()
1065 if (! HAS_CHAR(enc, ptr, end)) in PREFIX()
1067 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
1073 if (ptr + MINBPC(enc) != end) in PREFIX()
1077 *nextTokPtr = ptr; in PREFIX()
1081 *nextTokPtr = ptr; in PREFIX()
1084 return PREFIX(scanPercent)(enc, ptr + MINBPC(enc), end, nextTokPtr); in PREFIX()
1086 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
1089 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
1092 ptr += MINBPC(enc); in PREFIX()
1093 if (! HAS_CHAR(enc, ptr, end)) in PREFIX()
1095 if (CHAR_MATCHES(enc, ptr, ASCII_RSQB)) { in PREFIX()
1096 REQUIRE_CHARS(enc, ptr, end, 2); in PREFIX()
1097 if (CHAR_MATCHES(enc, ptr + MINBPC(enc), ASCII_GT)) { in PREFIX()
1098 *nextTokPtr = ptr + 2 * MINBPC(enc); in PREFIX()
1102 *nextTokPtr = ptr; in PREFIX()
1105 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
1108 ptr += MINBPC(enc); in PREFIX()
1109 if (! HAS_CHAR(enc, ptr, end)) in PREFIX()
1111 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
1113 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
1116 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
1119 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
1128 *nextTokPtr = ptr; in PREFIX()
1131 *nextTokPtr = ptr; in PREFIX()
1134 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
1137 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
1140 return PREFIX(scanPoundName)(enc, ptr + MINBPC(enc), end, nextTokPtr); in PREFIX()
1143 if (end - ptr < n) \ in PREFIX()
1145 if (IS_INVALID_CHAR(enc, ptr, n)) { \ in PREFIX()
1146 *nextTokPtr = ptr; \ in PREFIX()
1149 if (IS_NMSTRT_CHAR(enc, ptr, n)) { \ in PREFIX()
1150 ptr += n; \ in PREFIX()
1154 if (IS_NAME_CHAR(enc, ptr, n)) { \ in PREFIX()
1155 ptr += n; \ in PREFIX()
1159 *nextTokPtr = ptr; \ in PREFIX()
1168 ptr += MINBPC(enc); in PREFIX()
1177 ptr += MINBPC(enc); in PREFIX()
1180 if (IS_NMSTRT_CHAR_MINBPC(enc, ptr)) { in PREFIX()
1181 ptr += MINBPC(enc); in PREFIX()
1185 if (IS_NAME_CHAR_MINBPC(enc, ptr)) { in PREFIX()
1186 ptr += MINBPC(enc); in PREFIX()
1192 *nextTokPtr = ptr; in PREFIX()
1195 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
1196 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
1197 CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
1207 *nextTokPtr = ptr; in PREFIX()
1211 ptr += MINBPC(enc); in PREFIX()
1214 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
1216 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
1217 CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) in PREFIX()
1231 *nextTokPtr = ptr; in PREFIX()
1234 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
1238 *nextTokPtr = ptr; in PREFIX()
1241 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
1245 *nextTokPtr = ptr; in PREFIX()
1248 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
1251 *nextTokPtr = ptr; in PREFIX()
1259 PREFIX(attributeValueTok)(const ENCODING *enc, const char *ptr, const char *end, in PREFIX()
1262 if (ptr >= end) in PREFIX()
1264 else if (! HAS_CHAR(enc, ptr, end)) { in PREFIX()
1272 start = ptr; in PREFIX()
1273 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
1274 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
1277 ptr += n; /* NOTE: The encoding has already been validated. */ \ in PREFIX()
1284 if (ptr == start) in PREFIX()
1285 return PREFIX(scanRef)(enc, ptr + MINBPC(enc), end, nextTokPtr); in PREFIX()
1286 *nextTokPtr = ptr; in PREFIX()
1290 *nextTokPtr = ptr; in PREFIX()
1293 if (ptr == start) { in PREFIX()
1294 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
1297 *nextTokPtr = ptr; in PREFIX()
1300 if (ptr == start) { in PREFIX()
1301 ptr += MINBPC(enc); in PREFIX()
1302 if (! HAS_CHAR(enc, ptr, end)) in PREFIX()
1304 if (BYTE_TYPE(enc, ptr) == BT_LF) in PREFIX()
1305 ptr += MINBPC(enc); in PREFIX()
1306 *nextTokPtr = ptr; in PREFIX()
1309 *nextTokPtr = ptr; in PREFIX()
1312 if (ptr == start) { in PREFIX()
1313 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
1316 *nextTokPtr = ptr; in PREFIX()
1319 ptr += MINBPC(enc); in PREFIX()
1323 *nextTokPtr = ptr; in PREFIX()
1328 PREFIX(entityValueTok)(const ENCODING *enc, const char *ptr, const char *end, in PREFIX()
1331 if (ptr >= end) in PREFIX()
1333 else if (! HAS_CHAR(enc, ptr, end)) { in PREFIX()
1341 start = ptr; in PREFIX()
1342 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
1343 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
1346 ptr += n; /* NOTE: The encoding has already been validated. */ \ in PREFIX()
1353 if (ptr == start) in PREFIX()
1354 return PREFIX(scanRef)(enc, ptr + MINBPC(enc), end, nextTokPtr); in PREFIX()
1355 *nextTokPtr = ptr; in PREFIX()
1358 if (ptr == start) { in PREFIX()
1359 int tok = PREFIX(scanPercent)(enc, ptr + MINBPC(enc), end, nextTokPtr); in PREFIX()
1362 *nextTokPtr = ptr; in PREFIX()
1365 if (ptr == start) { in PREFIX()
1366 *nextTokPtr = ptr + MINBPC(enc); in PREFIX()
1369 *nextTokPtr = ptr; in PREFIX()
1372 if (ptr == start) { in PREFIX()
1373 ptr += MINBPC(enc); in PREFIX()
1374 if (! HAS_CHAR(enc, ptr, end)) in PREFIX()
1376 if (BYTE_TYPE(enc, ptr) == BT_LF) in PREFIX()
1377 ptr += MINBPC(enc); in PREFIX()
1378 *nextTokPtr = ptr; in PREFIX()
1381 *nextTokPtr = ptr; in PREFIX()
1384 ptr += MINBPC(enc); in PREFIX()
1388 *nextTokPtr = ptr; in PREFIX()
1395 PREFIX(ignoreSectionTok)(const ENCODING *enc, const char *ptr, const char *end, in PREFIX()
1399 size_t n = end - ptr; in PREFIX()
1402 end = ptr + n; in PREFIX()
1405 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
1406 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
1407 INVALID_CASES(ptr, nextTokPtr) in PREFIX()
1409 ptr += MINBPC(enc); in PREFIX()
1410 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
1411 if (CHAR_MATCHES(enc, ptr, ASCII_EXCL)) { in PREFIX()
1412 ptr += MINBPC(enc); in PREFIX()
1413 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
1414 if (CHAR_MATCHES(enc, ptr, ASCII_LSQB)) { in PREFIX()
1416 ptr += MINBPC(enc); in PREFIX()
1421 ptr += MINBPC(enc); in PREFIX()
1422 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
1423 if (CHAR_MATCHES(enc, ptr, ASCII_RSQB)) { in PREFIX()
1424 ptr += MINBPC(enc); in PREFIX()
1425 REQUIRE_CHAR(enc, ptr, end); in PREFIX()
1426 if (CHAR_MATCHES(enc, ptr, ASCII_GT)) { in PREFIX()
1427 ptr += MINBPC(enc); in PREFIX()
1429 *nextTokPtr = ptr; in PREFIX()
1437 ptr += MINBPC(enc); in PREFIX()
1447 PREFIX(isPublicId)(const ENCODING *enc, const char *ptr, const char *end, in PREFIX()
1449 ptr += MINBPC(enc); in PREFIX()
1451 for (; HAS_CHAR(enc, ptr, end); ptr += MINBPC(enc)) { in PREFIX()
1452 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
1476 if (CHAR_MATCHES(enc, ptr, ASCII_TAB)) { in PREFIX()
1477 *badPtr = ptr; in PREFIX()
1483 if (! (BYTE_TO_ASCII(enc, ptr) & ~0x7f)) in PREFIX()
1487 switch (BYTE_TO_ASCII(enc, ptr)) { in PREFIX()
1492 *badPtr = ptr; in PREFIX()
1507 PREFIX(getAtts)(const ENCODING *enc, const char *ptr, int attsMax, in PREFIX()
1514 for (ptr += MINBPC(enc);; ptr += MINBPC(enc)) { in PREFIX()
1515 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
1519 atts[nAtts].name = ptr; \ in PREFIX()
1526 START_NAME ptr += (n - MINBPC(enc)); \ in PREFIX()
1541 atts[nAtts].valuePtr = ptr + MINBPC(enc); in PREFIX()
1547 atts[nAtts].valueEnd = ptr; in PREFIX()
1554 atts[nAtts].valuePtr = ptr + MINBPC(enc); in PREFIX()
1560 atts[nAtts].valueEnd = ptr; in PREFIX()
1572 && (ptr == atts[nAtts].valuePtr in PREFIX()
1573 || BYTE_TO_ASCII(enc, ptr) != ASCII_SPACE in PREFIX()
1574 || BYTE_TO_ASCII(enc, ptr + MINBPC(enc)) == ASCII_SPACE in PREFIX()
1575 || BYTE_TYPE(enc, ptr + MINBPC(enc)) == open)) in PREFIX()
1600 PREFIX(charRefNumber)(const ENCODING *enc, const char *ptr) { in PREFIX()
1604 ptr += 2 * MINBPC(enc); in PREFIX()
1605 if (CHAR_MATCHES(enc, ptr, ASCII_x)) { in PREFIX()
1606 for (ptr += MINBPC(enc); ! CHAR_MATCHES(enc, ptr, ASCII_SEMI); in PREFIX()
1607 ptr += MINBPC(enc)) { in PREFIX()
1608 int c = BYTE_TO_ASCII(enc, ptr); in PREFIX()
1646 for (; ! CHAR_MATCHES(enc, ptr, ASCII_SEMI); ptr += MINBPC(enc)) { in PREFIX()
1647 int c = BYTE_TO_ASCII(enc, ptr); in PREFIX()
1658 PREFIX(predefinedEntityName)(const ENCODING *enc, const char *ptr, in PREFIX()
1661 switch ((end - ptr) / MINBPC(enc)) { in PREFIX()
1663 if (CHAR_MATCHES(enc, ptr + MINBPC(enc), ASCII_t)) { in PREFIX()
1664 switch (BYTE_TO_ASCII(enc, ptr)) { in PREFIX()
1673 if (CHAR_MATCHES(enc, ptr, ASCII_a)) { in PREFIX()
1674 ptr += MINBPC(enc); in PREFIX()
1675 if (CHAR_MATCHES(enc, ptr, ASCII_m)) { in PREFIX()
1676 ptr += MINBPC(enc); in PREFIX()
1677 if (CHAR_MATCHES(enc, ptr, ASCII_p)) in PREFIX()
1683 switch (BYTE_TO_ASCII(enc, ptr)) { in PREFIX()
1685 ptr += MINBPC(enc); in PREFIX()
1686 if (CHAR_MATCHES(enc, ptr, ASCII_u)) { in PREFIX()
1687 ptr += MINBPC(enc); in PREFIX()
1688 if (CHAR_MATCHES(enc, ptr, ASCII_o)) { in PREFIX()
1689 ptr += MINBPC(enc); in PREFIX()
1690 if (CHAR_MATCHES(enc, ptr, ASCII_t)) in PREFIX()
1696 ptr += MINBPC(enc); in PREFIX()
1697 if (CHAR_MATCHES(enc, ptr, ASCII_p)) { in PREFIX()
1698 ptr += MINBPC(enc); in PREFIX()
1699 if (CHAR_MATCHES(enc, ptr, ASCII_o)) { in PREFIX()
1700 ptr += MINBPC(enc); in PREFIX()
1701 if (CHAR_MATCHES(enc, ptr, ASCII_s)) in PREFIX()
1731 PREFIX(nameLength)(const ENCODING *enc, const char *ptr) { in PREFIX()
1732 const char *start = ptr; in PREFIX()
1734 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
1737 ptr += n; /* NOTE: The encoding has already been validated. */ \ in PREFIX()
1752 ptr += MINBPC(enc); in PREFIX()
1755 return (int)(ptr - start); in PREFIX()
1761 PREFIX(skipS)(const ENCODING *enc, const char *ptr) { in PREFIX()
1763 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
1767 ptr += MINBPC(enc); in PREFIX()
1770 return ptr; in PREFIX()
1776 PREFIX(updatePosition)(const ENCODING *enc, const char *ptr, const char *end, in PREFIX()
1778 while (HAS_CHAR(enc, ptr, end)) { in PREFIX()
1779 switch (BYTE_TYPE(enc, ptr)) { in PREFIX()
1782 ptr += n; /* NOTE: The encoding has already been validated. */ \ in PREFIX()
1792 ptr += MINBPC(enc); in PREFIX()
1796 ptr += MINBPC(enc); in PREFIX()
1797 if (HAS_CHAR(enc, ptr, end) && BYTE_TYPE(enc, ptr) == BT_LF) in PREFIX()
1798 ptr += MINBPC(enc); in PREFIX()
1802 ptr += MINBPC(enc); in PREFIX()