...
1<lexer>
2 <config>
3 <name>DTD</name>
4 <alias>dtd</alias>
5 <filename>*.dtd</filename>
6 <mime_type>application/xml-dtd</mime_type>
7 <dot_all>true</dot_all>
8 </config>
9 <rules>
10 <state name="common">
11 <rule pattern="\s+">
12 <token type="Text"/>
13 </rule>
14 <rule pattern="(%|&)[^;]*;">
15 <token type="NameEntity"/>
16 </rule>
17 <rule pattern="<!--">
18 <token type="Comment"/>
19 <push state="comment"/>
20 </rule>
21 <rule pattern="[(|)*,?+]">
22 <token type="Operator"/>
23 </rule>
24 <rule pattern=""[^"]*"">
25 <token type="LiteralStringDouble"/>
26 </rule>
27 <rule pattern="\'[^\']*\'">
28 <token type="LiteralStringSingle"/>
29 </rule>
30 </state>
31 <state name="comment">
32 <rule pattern="[^-]+">
33 <token type="Comment"/>
34 </rule>
35 <rule pattern="-->">
36 <token type="Comment"/>
37 <pop depth="1"/>
38 </rule>
39 <rule pattern="-">
40 <token type="Comment"/>
41 </rule>
42 </state>
43 <state name="element">
44 <rule>
45 <include state="common"/>
46 </rule>
47 <rule pattern="EMPTY|ANY|#PCDATA">
48 <token type="KeywordConstant"/>
49 </rule>
50 <rule pattern="[^>\s|()?+*,]+">
51 <token type="NameTag"/>
52 </rule>
53 <rule pattern=">">
54 <token type="Keyword"/>
55 <pop depth="1"/>
56 </rule>
57 </state>
58 <state name="attlist">
59 <rule>
60 <include state="common"/>
61 </rule>
62 <rule pattern="CDATA|IDREFS|IDREF|ID|NMTOKENS|NMTOKEN|ENTITIES|ENTITY|NOTATION">
63 <token type="KeywordConstant"/>
64 </rule>
65 <rule pattern="#REQUIRED|#IMPLIED|#FIXED">
66 <token type="KeywordConstant"/>
67 </rule>
68 <rule pattern="xml:space|xml:lang">
69 <token type="KeywordReserved"/>
70 </rule>
71 <rule pattern="[^>\s|()?+*,]+">
72 <token type="NameAttribute"/>
73 </rule>
74 <rule pattern=">">
75 <token type="Keyword"/>
76 <pop depth="1"/>
77 </rule>
78 </state>
79 <state name="entity">
80 <rule>
81 <include state="common"/>
82 </rule>
83 <rule pattern="SYSTEM|PUBLIC|NDATA">
84 <token type="KeywordConstant"/>
85 </rule>
86 <rule pattern="[^>\s|()?+*,]+">
87 <token type="NameEntity"/>
88 </rule>
89 <rule pattern=">">
90 <token type="Keyword"/>
91 <pop depth="1"/>
92 </rule>
93 </state>
94 <state name="notation">
95 <rule>
96 <include state="common"/>
97 </rule>
98 <rule pattern="SYSTEM|PUBLIC">
99 <token type="KeywordConstant"/>
100 </rule>
101 <rule pattern="[^>\s|()?+*,]+">
102 <token type="NameAttribute"/>
103 </rule>
104 <rule pattern=">">
105 <token type="Keyword"/>
106 <pop depth="1"/>
107 </rule>
108 </state>
109 <state name="root">
110 <rule>
111 <include state="common"/>
112 </rule>
113 <rule pattern="(<!ELEMENT)(\s+)(\S+)">
114 <bygroups>
115 <token type="Keyword"/>
116 <token type="Text"/>
117 <token type="NameTag"/>
118 </bygroups>
119 <push state="element"/>
120 </rule>
121 <rule pattern="(<!ATTLIST)(\s+)(\S+)">
122 <bygroups>
123 <token type="Keyword"/>
124 <token type="Text"/>
125 <token type="NameTag"/>
126 </bygroups>
127 <push state="attlist"/>
128 </rule>
129 <rule pattern="(<!ENTITY)(\s+)(\S+)">
130 <bygroups>
131 <token type="Keyword"/>
132 <token type="Text"/>
133 <token type="NameEntity"/>
134 </bygroups>
135 <push state="entity"/>
136 </rule>
137 <rule pattern="(<!NOTATION)(\s+)(\S+)">
138 <bygroups>
139 <token type="Keyword"/>
140 <token type="Text"/>
141 <token type="NameTag"/>
142 </bygroups>
143 <push state="notation"/>
144 </rule>
145 <rule pattern="(<!\[)([^\[\s]+)(\s*)(\[)">
146 <bygroups>
147 <token type="Keyword"/>
148 <token type="NameEntity"/>
149 <token type="Text"/>
150 <token type="Keyword"/>
151 </bygroups>
152 </rule>
153 <rule pattern="(<!DOCTYPE)(\s+)([^>\s]+)">
154 <bygroups>
155 <token type="Keyword"/>
156 <token type="Text"/>
157 <token type="NameTag"/>
158 </bygroups>
159 </rule>
160 <rule pattern="PUBLIC|SYSTEM">
161 <token type="KeywordConstant"/>
162 </rule>
163 <rule pattern="[\[\]>]">
164 <token type="Keyword"/>
165 </rule>
166 </state>
167 </rules>
168</lexer>
View as plain text