annotate Modules/expat/xmlrole.c @ 54294:dba767bc3155 legacy-trunk

remove mention of old ctypes version
author Benjamin Peterson <benjamin@python.org>
date Sat, 23 May 2009 20:59:09 +0000
parents f19e877281e4
children e4dc8be9a72f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1 /* Copyright (c) 1998, 1999 Thai Open Source Software Center Ltd
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
2 See the file COPYING for copying permission.
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3 */
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5 #ifdef COMPILED_FROM_DSP
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
6 #include "winconfig.h"
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
7 #elif defined(MACOS_CLASSIC)
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
8 #include "macconfig.h"
38885
f19e877281e4 Upgrade pyexpat to expat 2.0.0 (http://python.org/sf/1462338).
Trent Mick <trentm@activestate.com>
parents: 38080
diff changeset
9 #elif defined(__amigaos4__)
f19e877281e4 Upgrade pyexpat to expat 2.0.0 (http://python.org/sf/1462338).
Trent Mick <trentm@activestate.com>
parents: 38080
diff changeset
10 #include "amigaconfig.h"
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
11 #else
30748
6248dd5d192a Update to Expat 1.95.7; there are no changes to the Expat sources.
Fred Drake <fdrake@acm.org>
parents: 27386
diff changeset
12 #ifdef HAVE_EXPAT_CONFIG_H
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
13 #include <expat_config.h>
30748
6248dd5d192a Update to Expat 1.95.7; there are no changes to the Expat sources.
Fred Drake <fdrake@acm.org>
parents: 27386
diff changeset
14 #endif
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
15 #endif /* ndef COMPILED_FROM_DSP */
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
16
38080
b8ec689cb2fb Fix breakage from patch 1471883 (r45800 & r45808) on OSF/1.
Neal Norwitz <nnorwitz@gmail.com>
parents: 32911
diff changeset
17 #include <stddef.h>
b8ec689cb2fb Fix breakage from patch 1471883 (r45800 & r45808) on OSF/1.
Neal Norwitz <nnorwitz@gmail.com>
parents: 32911
diff changeset
18
32911
1533719c6138 update to Expat 1.95.8
Fred Drake <fdrake@acm.org>
parents: 30748
diff changeset
19 #include "expat_external.h"
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
20 #include "internal.h"
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
21 #include "xmlrole.h"
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
22 #include "ascii.h"
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
23
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
24 /* Doesn't check:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
25
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
26 that ,| are not mixed in a model group
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
27 content of literals
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
28
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
29 */
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
30
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
31 static const char KW_ANY[] = {
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
32 ASCII_A, ASCII_N, ASCII_Y, '\0' };
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
33 static const char KW_ATTLIST[] = {
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
34 ASCII_A, ASCII_T, ASCII_T, ASCII_L, ASCII_I, ASCII_S, ASCII_T, '\0' };
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
35 static const char KW_CDATA[] = {
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
36 ASCII_C, ASCII_D, ASCII_A, ASCII_T, ASCII_A, '\0' };
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
37 static const char KW_DOCTYPE[] = {
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
38 ASCII_D, ASCII_O, ASCII_C, ASCII_T, ASCII_Y, ASCII_P, ASCII_E, '\0' };
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
39 static const char KW_ELEMENT[] = {
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
40 ASCII_E, ASCII_L, ASCII_E, ASCII_M, ASCII_E, ASCII_N, ASCII_T, '\0' };
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
41 static const char KW_EMPTY[] = {
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
42 ASCII_E, ASCII_M, ASCII_P, ASCII_T, ASCII_Y, '\0' };
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
43 static const char KW_ENTITIES[] = {
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
44 ASCII_E, ASCII_N, ASCII_T, ASCII_I, ASCII_T, ASCII_I, ASCII_E, ASCII_S,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
45 '\0' };
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
46 static const char KW_ENTITY[] = {
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
47 ASCII_E, ASCII_N, ASCII_T, ASCII_I, ASCII_T, ASCII_Y, '\0' };
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
48 static const char KW_FIXED[] = {
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
49 ASCII_F, ASCII_I, ASCII_X, ASCII_E, ASCII_D, '\0' };
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
50 static const char KW_ID[] = {
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
51 ASCII_I, ASCII_D, '\0' };
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
52 static const char KW_IDREF[] = {
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
53 ASCII_I, ASCII_D, ASCII_R, ASCII_E, ASCII_F, '\0' };
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
54 static const char KW_IDREFS[] = {
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
55 ASCII_I, ASCII_D, ASCII_R, ASCII_E, ASCII_F, ASCII_S, '\0' };
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
56 static const char KW_IGNORE[] = {
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
57 ASCII_I, ASCII_G, ASCII_N, ASCII_O, ASCII_R, ASCII_E, '\0' };
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
58 static const char KW_IMPLIED[] = {
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
59 ASCII_I, ASCII_M, ASCII_P, ASCII_L, ASCII_I, ASCII_E, ASCII_D, '\0' };
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
60 static const char KW_INCLUDE[] = {
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
61 ASCII_I, ASCII_N, ASCII_C, ASCII_L, ASCII_U, ASCII_D, ASCII_E, '\0' };
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
62 static const char KW_NDATA[] = {
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
63 ASCII_N, ASCII_D, ASCII_A, ASCII_T, ASCII_A, '\0' };
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
64 static const char KW_NMTOKEN[] = {
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
65 ASCII_N, ASCII_M, ASCII_T, ASCII_O, ASCII_K, ASCII_E, ASCII_N, '\0' };
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
66 static const char KW_NMTOKENS[] = {
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
67 ASCII_N, ASCII_M, ASCII_T, ASCII_O, ASCII_K, ASCII_E, ASCII_N, ASCII_S,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
68 '\0' };
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
69 static const char KW_NOTATION[] =
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
70 { ASCII_N, ASCII_O, ASCII_T, ASCII_A, ASCII_T, ASCII_I, ASCII_O, ASCII_N,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
71 '\0' };
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
72 static const char KW_PCDATA[] = {
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
73 ASCII_P, ASCII_C, ASCII_D, ASCII_A, ASCII_T, ASCII_A, '\0' };
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
74 static const char KW_PUBLIC[] = {
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
75 ASCII_P, ASCII_U, ASCII_B, ASCII_L, ASCII_I, ASCII_C, '\0' };
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
76 static const char KW_REQUIRED[] = {
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
77 ASCII_R, ASCII_E, ASCII_Q, ASCII_U, ASCII_I, ASCII_R, ASCII_E, ASCII_D,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
78 '\0' };
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
79 static const char KW_SYSTEM[] = {
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
80 ASCII_S, ASCII_Y, ASCII_S, ASCII_T, ASCII_E, ASCII_M, '\0' };
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
81
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
82 #ifndef MIN_BYTES_PER_CHAR
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
83 #define MIN_BYTES_PER_CHAR(enc) ((enc)->minBytesPerChar)
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
84 #endif
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
85
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
86 #ifdef XML_DTD
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
87 #define setTopLevel(state) \
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
88 ((state)->handler = ((state)->documentEntity \
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
89 ? internalSubset \
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
90 : externalSubset1))
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
91 #else /* not XML_DTD */
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
92 #define setTopLevel(state) ((state)->handler = internalSubset)
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
93 #endif /* not XML_DTD */
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
94
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
95 typedef int PTRCALL PROLOG_HANDLER(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
96 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
97 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
98 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
99 const ENCODING *enc);
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
100
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
101 static PROLOG_HANDLER
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
102 prolog0, prolog1, prolog2,
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
103 doctype0, doctype1, doctype2, doctype3, doctype4, doctype5,
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
104 internalSubset,
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
105 entity0, entity1, entity2, entity3, entity4, entity5, entity6,
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
106 entity7, entity8, entity9, entity10,
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
107 notation0, notation1, notation2, notation3, notation4,
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
108 attlist0, attlist1, attlist2, attlist3, attlist4, attlist5, attlist6,
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
109 attlist7, attlist8, attlist9,
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
110 element0, element1, element2, element3, element4, element5, element6,
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
111 element7,
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
112 #ifdef XML_DTD
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
113 externalSubset0, externalSubset1,
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
114 condSect0, condSect1, condSect2,
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
115 #endif /* XML_DTD */
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
116 declClose,
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
117 error;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
118
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
119 static int FASTCALL common(PROLOG_STATE *state, int tok);
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
120
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
121 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
122 prolog0(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
123 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
124 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
125 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
126 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
127 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
128 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
129 case XML_TOK_PROLOG_S:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
130 state->handler = prolog1;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
131 return XML_ROLE_NONE;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
132 case XML_TOK_XML_DECL:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
133 state->handler = prolog1;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
134 return XML_ROLE_XML_DECL;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
135 case XML_TOK_PI:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
136 state->handler = prolog1;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
137 return XML_ROLE_PI;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
138 case XML_TOK_COMMENT:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
139 state->handler = prolog1;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
140 return XML_ROLE_COMMENT;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
141 case XML_TOK_BOM:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
142 return XML_ROLE_NONE;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
143 case XML_TOK_DECL_OPEN:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
144 if (!XmlNameMatchesAscii(enc,
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
145 ptr + 2 * MIN_BYTES_PER_CHAR(enc),
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
146 end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
147 KW_DOCTYPE))
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
148 break;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
149 state->handler = doctype0;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
150 return XML_ROLE_DOCTYPE_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
151 case XML_TOK_INSTANCE_START:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
152 state->handler = error;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
153 return XML_ROLE_INSTANCE_START;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
154 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
155 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
156 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
157
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
158 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
159 prolog1(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
160 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
161 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
162 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
163 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
164 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
165 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
166 case XML_TOK_PROLOG_S:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
167 return XML_ROLE_NONE;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
168 case XML_TOK_PI:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
169 return XML_ROLE_PI;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
170 case XML_TOK_COMMENT:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
171 return XML_ROLE_COMMENT;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
172 case XML_TOK_BOM:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
173 return XML_ROLE_NONE;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
174 case XML_TOK_DECL_OPEN:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
175 if (!XmlNameMatchesAscii(enc,
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
176 ptr + 2 * MIN_BYTES_PER_CHAR(enc),
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
177 end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
178 KW_DOCTYPE))
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
179 break;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
180 state->handler = doctype0;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
181 return XML_ROLE_DOCTYPE_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
182 case XML_TOK_INSTANCE_START:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
183 state->handler = error;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
184 return XML_ROLE_INSTANCE_START;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
185 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
186 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
187 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
188
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
189 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
190 prolog2(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
191 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
192 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
193 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
194 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
195 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
196 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
197 case XML_TOK_PROLOG_S:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
198 return XML_ROLE_NONE;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
199 case XML_TOK_PI:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
200 return XML_ROLE_PI;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
201 case XML_TOK_COMMENT:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
202 return XML_ROLE_COMMENT;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
203 case XML_TOK_INSTANCE_START:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
204 state->handler = error;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
205 return XML_ROLE_INSTANCE_START;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
206 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
207 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
208 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
209
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
210 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
211 doctype0(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
212 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
213 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
214 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
215 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
216 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
217 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
218 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
219 return XML_ROLE_DOCTYPE_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
220 case XML_TOK_NAME:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
221 case XML_TOK_PREFIXED_NAME:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
222 state->handler = doctype1;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
223 return XML_ROLE_DOCTYPE_NAME;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
224 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
225 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
226 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
227
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
228 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
229 doctype1(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
230 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
231 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
232 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
233 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
234 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
235 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
236 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
237 return XML_ROLE_DOCTYPE_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
238 case XML_TOK_OPEN_BRACKET:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
239 state->handler = internalSubset;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
240 return XML_ROLE_DOCTYPE_INTERNAL_SUBSET;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
241 case XML_TOK_DECL_CLOSE:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
242 state->handler = prolog2;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
243 return XML_ROLE_DOCTYPE_CLOSE;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
244 case XML_TOK_NAME:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
245 if (XmlNameMatchesAscii(enc, ptr, end, KW_SYSTEM)) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
246 state->handler = doctype3;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
247 return XML_ROLE_DOCTYPE_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
248 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
249 if (XmlNameMatchesAscii(enc, ptr, end, KW_PUBLIC)) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
250 state->handler = doctype2;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
251 return XML_ROLE_DOCTYPE_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
252 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
253 break;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
254 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
255 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
256 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
257
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
258 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
259 doctype2(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
260 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
261 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
262 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
263 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
264 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
265 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
266 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
267 return XML_ROLE_DOCTYPE_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
268 case XML_TOK_LITERAL:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
269 state->handler = doctype3;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
270 return XML_ROLE_DOCTYPE_PUBLIC_ID;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
271 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
272 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
273 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
274
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
275 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
276 doctype3(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
277 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
278 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
279 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
280 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
281 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
282 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
283 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
284 return XML_ROLE_DOCTYPE_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
285 case XML_TOK_LITERAL:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
286 state->handler = doctype4;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
287 return XML_ROLE_DOCTYPE_SYSTEM_ID;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
288 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
289 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
290 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
291
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
292 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
293 doctype4(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
294 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
295 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
296 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
297 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
298 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
299 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
300 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
301 return XML_ROLE_DOCTYPE_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
302 case XML_TOK_OPEN_BRACKET:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
303 state->handler = internalSubset;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
304 return XML_ROLE_DOCTYPE_INTERNAL_SUBSET;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
305 case XML_TOK_DECL_CLOSE:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
306 state->handler = prolog2;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
307 return XML_ROLE_DOCTYPE_CLOSE;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
308 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
309 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
310 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
311
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
312 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
313 doctype5(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
314 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
315 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
316 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
317 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
318 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
319 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
320 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
321 return XML_ROLE_DOCTYPE_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
322 case XML_TOK_DECL_CLOSE:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
323 state->handler = prolog2;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
324 return XML_ROLE_DOCTYPE_CLOSE;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
325 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
326 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
327 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
328
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
329 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
330 internalSubset(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
331 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
332 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
333 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
334 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
335 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
336 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
337 case XML_TOK_PROLOG_S:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
338 return XML_ROLE_NONE;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
339 case XML_TOK_DECL_OPEN:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
340 if (XmlNameMatchesAscii(enc,
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
341 ptr + 2 * MIN_BYTES_PER_CHAR(enc),
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
342 end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
343 KW_ENTITY)) {
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
344 state->handler = entity0;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
345 return XML_ROLE_ENTITY_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
346 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
347 if (XmlNameMatchesAscii(enc,
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
348 ptr + 2 * MIN_BYTES_PER_CHAR(enc),
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
349 end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
350 KW_ATTLIST)) {
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
351 state->handler = attlist0;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
352 return XML_ROLE_ATTLIST_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
353 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
354 if (XmlNameMatchesAscii(enc,
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
355 ptr + 2 * MIN_BYTES_PER_CHAR(enc),
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
356 end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
357 KW_ELEMENT)) {
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
358 state->handler = element0;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
359 return XML_ROLE_ELEMENT_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
360 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
361 if (XmlNameMatchesAscii(enc,
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
362 ptr + 2 * MIN_BYTES_PER_CHAR(enc),
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
363 end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
364 KW_NOTATION)) {
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
365 state->handler = notation0;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
366 return XML_ROLE_NOTATION_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
367 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
368 break;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
369 case XML_TOK_PI:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
370 return XML_ROLE_PI;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
371 case XML_TOK_COMMENT:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
372 return XML_ROLE_COMMENT;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
373 case XML_TOK_PARAM_ENTITY_REF:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
374 return XML_ROLE_PARAM_ENTITY_REF;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
375 case XML_TOK_CLOSE_BRACKET:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
376 state->handler = doctype5;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
377 return XML_ROLE_DOCTYPE_NONE;
32911
1533719c6138 update to Expat 1.95.8
Fred Drake <fdrake@acm.org>
parents: 30748
diff changeset
378 case XML_TOK_NONE:
1533719c6138 update to Expat 1.95.8
Fred Drake <fdrake@acm.org>
parents: 30748
diff changeset
379 return XML_ROLE_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
380 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
381 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
382 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
383
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
384 #ifdef XML_DTD
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
385
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
386 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
387 externalSubset0(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
388 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
389 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
390 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
391 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
392 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
393 state->handler = externalSubset1;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
394 if (tok == XML_TOK_XML_DECL)
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
395 return XML_ROLE_TEXT_DECL;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
396 return externalSubset1(state, tok, ptr, end, enc);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
397 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
398
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
399 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
400 externalSubset1(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
401 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
402 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
403 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
404 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
405 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
406 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
407 case XML_TOK_COND_SECT_OPEN:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
408 state->handler = condSect0;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
409 return XML_ROLE_NONE;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
410 case XML_TOK_COND_SECT_CLOSE:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
411 if (state->includeLevel == 0)
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
412 break;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
413 state->includeLevel -= 1;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
414 return XML_ROLE_NONE;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
415 case XML_TOK_PROLOG_S:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
416 return XML_ROLE_NONE;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
417 case XML_TOK_CLOSE_BRACKET:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
418 break;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
419 case XML_TOK_NONE:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
420 if (state->includeLevel)
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
421 break;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
422 return XML_ROLE_NONE;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
423 default:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
424 return internalSubset(state, tok, ptr, end, enc);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
425 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
426 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
427 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
428
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
429 #endif /* XML_DTD */
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
430
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
431 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
432 entity0(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
433 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
434 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
435 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
436 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
437 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
438 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
439 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
440 return XML_ROLE_ENTITY_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
441 case XML_TOK_PERCENT:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
442 state->handler = entity1;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
443 return XML_ROLE_ENTITY_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
444 case XML_TOK_NAME:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
445 state->handler = entity2;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
446 return XML_ROLE_GENERAL_ENTITY_NAME;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
447 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
448 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
449 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
450
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
451 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
452 entity1(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
453 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
454 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
455 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
456 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
457 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
458 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
459 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
460 return XML_ROLE_ENTITY_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
461 case XML_TOK_NAME:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
462 state->handler = entity7;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
463 return XML_ROLE_PARAM_ENTITY_NAME;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
464 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
465 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
466 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
467
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
468 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
469 entity2(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
470 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
471 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
472 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
473 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
474 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
475 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
476 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
477 return XML_ROLE_ENTITY_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
478 case XML_TOK_NAME:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
479 if (XmlNameMatchesAscii(enc, ptr, end, KW_SYSTEM)) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
480 state->handler = entity4;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
481 return XML_ROLE_ENTITY_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
482 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
483 if (XmlNameMatchesAscii(enc, ptr, end, KW_PUBLIC)) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
484 state->handler = entity3;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
485 return XML_ROLE_ENTITY_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
486 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
487 break;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
488 case XML_TOK_LITERAL:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
489 state->handler = declClose;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
490 state->role_none = XML_ROLE_ENTITY_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
491 return XML_ROLE_ENTITY_VALUE;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
492 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
493 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
494 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
495
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
496 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
497 entity3(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
498 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
499 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
500 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
501 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
502 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
503 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
504 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
505 return XML_ROLE_ENTITY_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
506 case XML_TOK_LITERAL:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
507 state->handler = entity4;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
508 return XML_ROLE_ENTITY_PUBLIC_ID;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
509 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
510 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
511 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
512
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
513 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
514 entity4(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
515 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
516 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
517 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
518 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
519 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
520 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
521 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
522 return XML_ROLE_ENTITY_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
523 case XML_TOK_LITERAL:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
524 state->handler = entity5;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
525 return XML_ROLE_ENTITY_SYSTEM_ID;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
526 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
527 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
528 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
529
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
530 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
531 entity5(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
532 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
533 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
534 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
535 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
536 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
537 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
538 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
539 return XML_ROLE_ENTITY_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
540 case XML_TOK_DECL_CLOSE:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
541 setTopLevel(state);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
542 return XML_ROLE_ENTITY_COMPLETE;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
543 case XML_TOK_NAME:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
544 if (XmlNameMatchesAscii(enc, ptr, end, KW_NDATA)) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
545 state->handler = entity6;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
546 return XML_ROLE_ENTITY_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
547 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
548 break;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
549 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
550 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
551 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
552
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
553 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
554 entity6(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
555 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
556 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
557 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
558 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
559 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
560 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
561 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
562 return XML_ROLE_ENTITY_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
563 case XML_TOK_NAME:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
564 state->handler = declClose;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
565 state->role_none = XML_ROLE_ENTITY_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
566 return XML_ROLE_ENTITY_NOTATION_NAME;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
567 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
568 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
569 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
570
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
571 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
572 entity7(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
573 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
574 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
575 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
576 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
577 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
578 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
579 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
580 return XML_ROLE_ENTITY_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
581 case XML_TOK_NAME:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
582 if (XmlNameMatchesAscii(enc, ptr, end, KW_SYSTEM)) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
583 state->handler = entity9;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
584 return XML_ROLE_ENTITY_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
585 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
586 if (XmlNameMatchesAscii(enc, ptr, end, KW_PUBLIC)) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
587 state->handler = entity8;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
588 return XML_ROLE_ENTITY_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
589 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
590 break;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
591 case XML_TOK_LITERAL:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
592 state->handler = declClose;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
593 state->role_none = XML_ROLE_ENTITY_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
594 return XML_ROLE_ENTITY_VALUE;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
595 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
596 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
597 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
598
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
599 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
600 entity8(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
601 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
602 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
603 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
604 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
605 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
606 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
607 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
608 return XML_ROLE_ENTITY_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
609 case XML_TOK_LITERAL:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
610 state->handler = entity9;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
611 return XML_ROLE_ENTITY_PUBLIC_ID;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
612 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
613 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
614 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
615
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
616 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
617 entity9(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
618 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
619 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
620 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
621 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
622 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
623 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
624 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
625 return XML_ROLE_ENTITY_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
626 case XML_TOK_LITERAL:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
627 state->handler = entity10;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
628 return XML_ROLE_ENTITY_SYSTEM_ID;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
629 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
630 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
631 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
632
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
633 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
634 entity10(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
635 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
636 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
637 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
638 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
639 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
640 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
641 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
642 return XML_ROLE_ENTITY_NONE;
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
643 case XML_TOK_DECL_CLOSE:
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
644 setTopLevel(state);
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
645 return XML_ROLE_ENTITY_COMPLETE;
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
646 }
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
647 return common(state, tok);
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
648 }
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
649
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
650 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
651 notation0(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
652 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
653 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
654 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
655 const ENCODING *enc)
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
656 {
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
657 switch (tok) {
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
658 case XML_TOK_PROLOG_S:
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
659 return XML_ROLE_NOTATION_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
660 case XML_TOK_NAME:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
661 state->handler = notation1;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
662 return XML_ROLE_NOTATION_NAME;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
663 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
664 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
665 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
666
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
667 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
668 notation1(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
669 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
670 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
671 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
672 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
673 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
674 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
675 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
676 return XML_ROLE_NOTATION_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
677 case XML_TOK_NAME:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
678 if (XmlNameMatchesAscii(enc, ptr, end, KW_SYSTEM)) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
679 state->handler = notation3;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
680 return XML_ROLE_NOTATION_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
681 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
682 if (XmlNameMatchesAscii(enc, ptr, end, KW_PUBLIC)) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
683 state->handler = notation2;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
684 return XML_ROLE_NOTATION_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
685 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
686 break;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
687 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
688 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
689 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
690
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
691 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
692 notation2(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
693 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
694 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
695 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
696 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
697 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
698 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
699 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
700 return XML_ROLE_NOTATION_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
701 case XML_TOK_LITERAL:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
702 state->handler = notation4;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
703 return XML_ROLE_NOTATION_PUBLIC_ID;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
704 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
705 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
706 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
707
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
708 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
709 notation3(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
710 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
711 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
712 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
713 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
714 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
715 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
716 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
717 return XML_ROLE_NOTATION_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
718 case XML_TOK_LITERAL:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
719 state->handler = declClose;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
720 state->role_none = XML_ROLE_NOTATION_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
721 return XML_ROLE_NOTATION_SYSTEM_ID;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
722 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
723 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
724 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
725
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
726 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
727 notation4(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
728 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
729 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
730 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
731 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
732 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
733 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
734 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
735 return XML_ROLE_NOTATION_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
736 case XML_TOK_LITERAL:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
737 state->handler = declClose;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
738 state->role_none = XML_ROLE_NOTATION_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
739 return XML_ROLE_NOTATION_SYSTEM_ID;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
740 case XML_TOK_DECL_CLOSE:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
741 setTopLevel(state);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
742 return XML_ROLE_NOTATION_NO_SYSTEM_ID;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
743 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
744 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
745 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
746
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
747 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
748 attlist0(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
749 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
750 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
751 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
752 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
753 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
754 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
755 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
756 return XML_ROLE_ATTLIST_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
757 case XML_TOK_NAME:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
758 case XML_TOK_PREFIXED_NAME:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
759 state->handler = attlist1;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
760 return XML_ROLE_ATTLIST_ELEMENT_NAME;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
761 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
762 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
763 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
764
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
765 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
766 attlist1(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
767 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
768 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
769 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
770 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
771 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
772 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
773 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
774 return XML_ROLE_ATTLIST_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
775 case XML_TOK_DECL_CLOSE:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
776 setTopLevel(state);
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
777 return XML_ROLE_ATTLIST_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
778 case XML_TOK_NAME:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
779 case XML_TOK_PREFIXED_NAME:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
780 state->handler = attlist2;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
781 return XML_ROLE_ATTRIBUTE_NAME;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
782 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
783 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
784 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
785
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
786 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
787 attlist2(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
788 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
789 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
790 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
791 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
792 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
793 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
794 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
795 return XML_ROLE_ATTLIST_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
796 case XML_TOK_NAME:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
797 {
38885
f19e877281e4 Upgrade pyexpat to expat 2.0.0 (http://python.org/sf/1462338).
Trent Mick <trentm@activestate.com>
parents: 38080
diff changeset
798 static const char * const types[] = {
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
799 KW_CDATA,
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
800 KW_ID,
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
801 KW_IDREF,
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
802 KW_IDREFS,
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
803 KW_ENTITY,
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
804 KW_ENTITIES,
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
805 KW_NMTOKEN,
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
806 KW_NMTOKENS,
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
807 };
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
808 int i;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
809 for (i = 0; i < (int)(sizeof(types)/sizeof(types[0])); i++)
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
810 if (XmlNameMatchesAscii(enc, ptr, end, types[i])) {
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
811 state->handler = attlist8;
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
812 return XML_ROLE_ATTRIBUTE_TYPE_CDATA + i;
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
813 }
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
814 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
815 if (XmlNameMatchesAscii(enc, ptr, end, KW_NOTATION)) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
816 state->handler = attlist5;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
817 return XML_ROLE_ATTLIST_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
818 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
819 break;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
820 case XML_TOK_OPEN_PAREN:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
821 state->handler = attlist3;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
822 return XML_ROLE_ATTLIST_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
823 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
824 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
825 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
826
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
827 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
828 attlist3(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
829 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
830 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
831 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
832 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
833 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
834 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
835 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
836 return XML_ROLE_ATTLIST_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
837 case XML_TOK_NMTOKEN:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
838 case XML_TOK_NAME:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
839 case XML_TOK_PREFIXED_NAME:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
840 state->handler = attlist4;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
841 return XML_ROLE_ATTRIBUTE_ENUM_VALUE;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
842 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
843 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
844 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
845
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
846 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
847 attlist4(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
848 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
849 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
850 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
851 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
852 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
853 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
854 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
855 return XML_ROLE_ATTLIST_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
856 case XML_TOK_CLOSE_PAREN:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
857 state->handler = attlist8;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
858 return XML_ROLE_ATTLIST_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
859 case XML_TOK_OR:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
860 state->handler = attlist3;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
861 return XML_ROLE_ATTLIST_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
862 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
863 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
864 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
865
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
866 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
867 attlist5(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
868 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
869 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
870 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
871 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
872 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
873 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
874 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
875 return XML_ROLE_ATTLIST_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
876 case XML_TOK_OPEN_PAREN:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
877 state->handler = attlist6;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
878 return XML_ROLE_ATTLIST_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
879 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
880 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
881 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
882
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
883 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
884 attlist6(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
885 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
886 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
887 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
888 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
889 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
890 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
891 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
892 return XML_ROLE_ATTLIST_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
893 case XML_TOK_NAME:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
894 state->handler = attlist7;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
895 return XML_ROLE_ATTRIBUTE_NOTATION_VALUE;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
896 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
897 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
898 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
899
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
900 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
901 attlist7(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
902 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
903 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
904 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
905 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
906 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
907 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
908 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
909 return XML_ROLE_ATTLIST_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
910 case XML_TOK_CLOSE_PAREN:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
911 state->handler = attlist8;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
912 return XML_ROLE_ATTLIST_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
913 case XML_TOK_OR:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
914 state->handler = attlist6;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
915 return XML_ROLE_ATTLIST_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
916 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
917 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
918 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
919
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
920 /* default value */
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
921 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
922 attlist8(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
923 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
924 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
925 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
926 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
927 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
928 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
929 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
930 return XML_ROLE_ATTLIST_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
931 case XML_TOK_POUND_NAME:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
932 if (XmlNameMatchesAscii(enc,
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
933 ptr + MIN_BYTES_PER_CHAR(enc),
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
934 end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
935 KW_IMPLIED)) {
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
936 state->handler = attlist1;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
937 return XML_ROLE_IMPLIED_ATTRIBUTE_VALUE;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
938 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
939 if (XmlNameMatchesAscii(enc,
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
940 ptr + MIN_BYTES_PER_CHAR(enc),
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
941 end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
942 KW_REQUIRED)) {
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
943 state->handler = attlist1;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
944 return XML_ROLE_REQUIRED_ATTRIBUTE_VALUE;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
945 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
946 if (XmlNameMatchesAscii(enc,
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
947 ptr + MIN_BYTES_PER_CHAR(enc),
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
948 end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
949 KW_FIXED)) {
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
950 state->handler = attlist9;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
951 return XML_ROLE_ATTLIST_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
952 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
953 break;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
954 case XML_TOK_LITERAL:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
955 state->handler = attlist1;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
956 return XML_ROLE_DEFAULT_ATTRIBUTE_VALUE;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
957 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
958 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
959 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
960
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
961 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
962 attlist9(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
963 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
964 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
965 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
966 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
967 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
968 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
969 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
970 return XML_ROLE_ATTLIST_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
971 case XML_TOK_LITERAL:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
972 state->handler = attlist1;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
973 return XML_ROLE_FIXED_ATTRIBUTE_VALUE;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
974 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
975 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
976 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
977
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
978 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
979 element0(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
980 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
981 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
982 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
983 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
984 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
985 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
986 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
987 return XML_ROLE_ELEMENT_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
988 case XML_TOK_NAME:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
989 case XML_TOK_PREFIXED_NAME:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
990 state->handler = element1;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
991 return XML_ROLE_ELEMENT_NAME;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
992 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
993 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
994 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
995
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
996 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
997 element1(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
998 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
999 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1000 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1001 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1002 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1003 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1004 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1005 return XML_ROLE_ELEMENT_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1006 case XML_TOK_NAME:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1007 if (XmlNameMatchesAscii(enc, ptr, end, KW_EMPTY)) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1008 state->handler = declClose;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1009 state->role_none = XML_ROLE_ELEMENT_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1010 return XML_ROLE_CONTENT_EMPTY;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1011 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1012 if (XmlNameMatchesAscii(enc, ptr, end, KW_ANY)) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1013 state->handler = declClose;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1014 state->role_none = XML_ROLE_ELEMENT_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1015 return XML_ROLE_CONTENT_ANY;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1016 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1017 break;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1018 case XML_TOK_OPEN_PAREN:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1019 state->handler = element2;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1020 state->level = 1;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1021 return XML_ROLE_GROUP_OPEN;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1022 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1023 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1024 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1025
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1026 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1027 element2(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1028 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1029 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1030 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1031 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1032 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1033 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1034 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1035 return XML_ROLE_ELEMENT_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1036 case XML_TOK_POUND_NAME:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1037 if (XmlNameMatchesAscii(enc,
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1038 ptr + MIN_BYTES_PER_CHAR(enc),
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1039 end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1040 KW_PCDATA)) {
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1041 state->handler = element3;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1042 return XML_ROLE_CONTENT_PCDATA;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1043 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1044 break;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1045 case XML_TOK_OPEN_PAREN:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1046 state->level = 2;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1047 state->handler = element6;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1048 return XML_ROLE_GROUP_OPEN;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1049 case XML_TOK_NAME:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1050 case XML_TOK_PREFIXED_NAME:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1051 state->handler = element7;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1052 return XML_ROLE_CONTENT_ELEMENT;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1053 case XML_TOK_NAME_QUESTION:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1054 state->handler = element7;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1055 return XML_ROLE_CONTENT_ELEMENT_OPT;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1056 case XML_TOK_NAME_ASTERISK:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1057 state->handler = element7;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1058 return XML_ROLE_CONTENT_ELEMENT_REP;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1059 case XML_TOK_NAME_PLUS:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1060 state->handler = element7;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1061 return XML_ROLE_CONTENT_ELEMENT_PLUS;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1062 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1063 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1064 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1065
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1066 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1067 element3(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1068 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1069 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1070 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1071 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1072 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1073 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1074 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1075 return XML_ROLE_ELEMENT_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1076 case XML_TOK_CLOSE_PAREN:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1077 state->handler = declClose;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1078 state->role_none = XML_ROLE_ELEMENT_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1079 return XML_ROLE_GROUP_CLOSE;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1080 case XML_TOK_CLOSE_PAREN_ASTERISK:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1081 state->handler = declClose;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1082 state->role_none = XML_ROLE_ELEMENT_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1083 return XML_ROLE_GROUP_CLOSE_REP;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1084 case XML_TOK_OR:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1085 state->handler = element4;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1086 return XML_ROLE_ELEMENT_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1087 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1088 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1089 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1090
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1091 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1092 element4(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1093 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1094 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1095 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1096 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1097 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1098 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1099 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1100 return XML_ROLE_ELEMENT_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1101 case XML_TOK_NAME:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1102 case XML_TOK_PREFIXED_NAME:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1103 state->handler = element5;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1104 return XML_ROLE_CONTENT_ELEMENT;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1105 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1106 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1107 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1108
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1109 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1110 element5(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1111 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1112 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1113 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1114 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1115 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1116 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1117 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1118 return XML_ROLE_ELEMENT_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1119 case XML_TOK_CLOSE_PAREN_ASTERISK:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1120 state->handler = declClose;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1121 state->role_none = XML_ROLE_ELEMENT_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1122 return XML_ROLE_GROUP_CLOSE_REP;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1123 case XML_TOK_OR:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1124 state->handler = element4;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1125 return XML_ROLE_ELEMENT_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1126 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1127 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1128 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1129
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1130 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1131 element6(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1132 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1133 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1134 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1135 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1136 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1137 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1138 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1139 return XML_ROLE_ELEMENT_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1140 case XML_TOK_OPEN_PAREN:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1141 state->level += 1;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1142 return XML_ROLE_GROUP_OPEN;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1143 case XML_TOK_NAME:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1144 case XML_TOK_PREFIXED_NAME:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1145 state->handler = element7;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1146 return XML_ROLE_CONTENT_ELEMENT;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1147 case XML_TOK_NAME_QUESTION:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1148 state->handler = element7;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1149 return XML_ROLE_CONTENT_ELEMENT_OPT;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1150 case XML_TOK_NAME_ASTERISK:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1151 state->handler = element7;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1152 return XML_ROLE_CONTENT_ELEMENT_REP;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1153 case XML_TOK_NAME_PLUS:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1154 state->handler = element7;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1155 return XML_ROLE_CONTENT_ELEMENT_PLUS;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1156 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1157 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1158 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1159
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1160 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1161 element7(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1162 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1163 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1164 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1165 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1166 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1167 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1168 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1169 return XML_ROLE_ELEMENT_NONE;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1170 case XML_TOK_CLOSE_PAREN:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1171 state->level -= 1;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1172 if (state->level == 0) {
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1173 state->handler = declClose;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1174 state->role_none = XML_ROLE_ELEMENT_NONE;
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1175 }
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1176 return XML_ROLE_GROUP_CLOSE;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1177 case XML_TOK_CLOSE_PAREN_ASTERISK:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1178 state->level -= 1;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1179 if (state->level == 0) {
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1180 state->handler = declClose;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1181 state->role_none = XML_ROLE_ELEMENT_NONE;
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1182 }
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1183 return XML_ROLE_GROUP_CLOSE_REP;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1184 case XML_TOK_CLOSE_PAREN_QUESTION:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1185 state->level -= 1;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1186 if (state->level == 0) {
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1187 state->handler = declClose;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1188 state->role_none = XML_ROLE_ELEMENT_NONE;
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1189 }
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1190 return XML_ROLE_GROUP_CLOSE_OPT;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1191 case XML_TOK_CLOSE_PAREN_PLUS:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1192 state->level -= 1;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1193 if (state->level == 0) {
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1194 state->handler = declClose;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1195 state->role_none = XML_ROLE_ELEMENT_NONE;
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1196 }
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1197 return XML_ROLE_GROUP_CLOSE_PLUS;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1198 case XML_TOK_COMMA:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1199 state->handler = element6;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1200 return XML_ROLE_GROUP_SEQUENCE;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1201 case XML_TOK_OR:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1202 state->handler = element6;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1203 return XML_ROLE_GROUP_CHOICE;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1204 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1205 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1206 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1207
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1208 #ifdef XML_DTD
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1209
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1210 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1211 condSect0(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1212 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1213 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1214 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1215 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1216 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1217 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1218 case XML_TOK_PROLOG_S:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1219 return XML_ROLE_NONE;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1220 case XML_TOK_NAME:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1221 if (XmlNameMatchesAscii(enc, ptr, end, KW_INCLUDE)) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1222 state->handler = condSect1;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1223 return XML_ROLE_NONE;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1224 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1225 if (XmlNameMatchesAscii(enc, ptr, end, KW_IGNORE)) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1226 state->handler = condSect2;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1227 return XML_ROLE_NONE;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1228 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1229 break;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1230 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1231 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1232 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1233
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1234 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1235 condSect1(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1236 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1237 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1238 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1239 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1240 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1241 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1242 case XML_TOK_PROLOG_S:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1243 return XML_ROLE_NONE;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1244 case XML_TOK_OPEN_BRACKET:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1245 state->handler = externalSubset1;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1246 state->includeLevel += 1;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1247 return XML_ROLE_NONE;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1248 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1249 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1250 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1251
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1252 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1253 condSect2(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1254 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1255 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1256 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1257 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1258 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1259 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1260 case XML_TOK_PROLOG_S:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1261 return XML_ROLE_NONE;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1262 case XML_TOK_OPEN_BRACKET:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1263 state->handler = externalSubset1;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1264 return XML_ROLE_IGNORE_SECT;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1265 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1266 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1267 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1268
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1269 #endif /* XML_DTD */
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1270
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1271 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1272 declClose(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1273 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1274 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1275 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1276 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1277 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1278 switch (tok) {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1279 case XML_TOK_PROLOG_S:
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1280 return state->role_none;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1281 case XML_TOK_DECL_CLOSE:
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1282 setTopLevel(state);
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1283 return state->role_none;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1284 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1285 return common(state, tok);
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1286 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1287
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1288 static int PTRCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1289 error(PROLOG_STATE *state,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1290 int tok,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1291 const char *ptr,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1292 const char *end,
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1293 const ENCODING *enc)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1294 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1295 return XML_ROLE_NONE;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1296 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1297
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1298 static int FASTCALL
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1299 common(PROLOG_STATE *state, int tok)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1300 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1301 #ifdef XML_DTD
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1302 if (!state->documentEntity && tok == XML_TOK_PARAM_ENTITY_REF)
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1303 return XML_ROLE_INNER_PARAM_ENTITY_REF;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1304 #endif
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1305 state->handler = error;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1306 return XML_ROLE_ERROR;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1307 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1308
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1309 void
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1310 XmlPrologStateInit(PROLOG_STATE *state)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1311 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1312 state->handler = prolog0;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1313 #ifdef XML_DTD
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1314 state->documentEntity = 1;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1315 state->includeLevel = 0;
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1316 state->inEntityValue = 0;
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1317 #endif /* XML_DTD */
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1318 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1319
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1320 #ifdef XML_DTD
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1321
27384
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1322 void
d363f83c2846 Incorporate Expat 1.95.6.
Martin v. Löwis <martin@v.loewis.de>
parents: 24273
diff changeset
1323 XmlPrologStateInitExternalEntity(PROLOG_STATE *state)
21930
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1324 {
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1325 state->handler = externalSubset0;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1326 state->documentEntity = 0;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1327 state->includeLevel = 0;
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1328 }
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1329
88e217e5053f Initial revision
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1330 #endif /* XML_DTD */