blob: 56fd88ee4dce0f9c6d01d2b6216b32e1150c6b44 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
|
/* This flex scanner is intended to be compliled case insensitive. */
%{
#include <stdio.h>
#include <string.h>
#include "hc.h"
%}
wsp [ \t\n\r\v\t]
notwsp [^ \t\n\r\v\t]
notspecial [^"'<>/=& \t\n\r\v\t]
elname [A-Za-z0-9]+
attrname [^"'<>/=&\x0-\x1f\t\n\r\v\t ]
endnm [^A-Za-z_\-0-9]
%x ELM ATT
%%
[<] { BEGIN(ELM);
return '<'; }
{wsp}+ { return tok_wsp; }
{notspecial}+ { return tok_text; }
"<!--".*"-->" { return tok_text; }
<ELM>a/{endnm} { BEGIN(ATT); return tok_el_a; }
<ELM>abbr/{endnm} { BEGIN(ATT); return tok_el_abbr; }
<ELM>acronym/{endnm} { BEGIN(ATT); return tok_el_acronym; }
<ELM>address/{endnm} { BEGIN(ATT); return tok_el_address; }
<ELM>applet/{endnm} { BEGIN(ATT); return tok_el_applet; }
<ELM>area/{endnm} { BEGIN(ATT); return tok_el_area; }
<ELM>b/{endnm} { BEGIN(ATT); return tok_el_b; }
<ELM>base/{endnm} { BEGIN(ATT); return tok_el_base; }
<ELM>basefont/{endnm} { BEGIN(ATT); return tok_el_basefont; }
<ELM>bdo/{endnm} { BEGIN(ATT); return tok_el_bdo; }
<ELM>big/{endnm} { BEGIN(ATT); return tok_el_big; }
<ELM>blockquote/{endnm} { BEGIN(ATT); return tok_el_blockquote; }
<ELM>body/{endnm} { BEGIN(ATT); return tok_el_body; }
<ELM>br/{endnm} { BEGIN(ATT); return tok_el_br; }
<ELM>button/{endnm} { BEGIN(ATT); return tok_el_button; }
<ELM>caption/{endnm} { BEGIN(ATT); return tok_el_caption; }
<ELM>center/{endnm} { BEGIN(ATT); return tok_el_center; }
<ELM>cite/{endnm} { BEGIN(ATT); return tok_el_cite; }
<ELM>code/{endnm} { BEGIN(ATT); return tok_el_code; }
<ELM>col/{endnm} { BEGIN(ATT); return tok_el_col; }
<ELM>colgroup/{endnm} { BEGIN(ATT); return tok_el_colgroup; }
<ELM>dd/{endnm} { BEGIN(ATT); return tok_el_dd; }
<ELM>del/{endnm} { BEGIN(ATT); return tok_el_del; }
<ELM>dfn/{endnm} { BEGIN(ATT); return tok_el_dfn; }
<ELM>dir/{endnm} { BEGIN(ATT); return tok_el_dir; }
<ELM>div/{endnm} { BEGIN(ATT); return tok_el_div; }
<ELM>dl/{endnm} { BEGIN(ATT); return tok_el_dl; }
<ELM>dt/{endnm} { BEGIN(ATT); return tok_el_dt; }
<ELM>em/{endnm} { BEGIN(ATT); return tok_el_em; }
<ELM>fieldset/{endnm} { BEGIN(ATT); return tok_el_fieldset; }
<ELM>font/{endnm} { BEGIN(ATT); return tok_el_font; }
<ELM>form/{endnm} { BEGIN(ATT); return tok_el_form; }
<ELM>frame/{endnm} { BEGIN(ATT); return tok_el_frame; }
<ELM>frameset/{endnm} { BEGIN(ATT); return tok_el_frameset; }
<ELM>h1/{endnm} { BEGIN(ATT); return tok_el_h1; }
<ELM>h2/{endnm} { BEGIN(ATT); return tok_el_h2; }
<ELM>h3/{endnm} { BEGIN(ATT); return tok_el_h3; }
<ELM>h4/{endnm} { BEGIN(ATT); return tok_el_h4; }
<ELM>h5/{endnm} { BEGIN(ATT); return tok_el_h5; }
<ELM>h6/{endnm} { BEGIN(ATT); return tok_el_h5; }
<ELM>head/{endnm} { BEGIN(ATT); return tok_el_head; }
<ELM>hr/{endnm} { BEGIN(ATT); return tok_el_hr; }
<ELM>html/{endnm} { BEGIN(ATT); return tok_el_html; }
<ELM>i/{endnm} { BEGIN(ATT); return tok_el_i; }
<ELM>iframe/{endnm} { BEGIN(ATT); return tok_el_iframe; }
<ELM>img/{endnm} { BEGIN(ATT); return tok_el_img; }
<ELM>input/{endnm} { BEGIN(ATT); return tok_el_input; }
<ELM>ins/{endnm} { BEGIN(ATT); return tok_el_ins; }
<ELM>kbd/{endnm} { BEGIN(ATT); return tok_el_kbd; }
<ELM>label/{endnm} { BEGIN(ATT); return tok_el_label; }
<ELM>legend/{endnm} { BEGIN(ATT); return tok_el_legend; }
<ELM>li/{endnm} { BEGIN(ATT); return tok_el_li; }
<ELM>link/{endnm} { BEGIN(ATT); return tok_el_link; }
<ELM>map/{endnm} { BEGIN(ATT); return tok_el_map; }
<ELM>menu/{endnm} { BEGIN(ATT); return tok_el_menu; }
<ELM>meta/{endnm} { BEGIN(ATT); return tok_el_meta; }
<ELM>noframes/{endnm} { BEGIN(ATT); return tok_el_noframes; }
<ELM>noscript/{endnm} { BEGIN(ATT); return tok_el_noscript; }
<ELM>object/{endnm} { BEGIN(ATT); return tok_el_object; }
<ELM>ol/{endnm} { BEGIN(ATT); return tok_el_ol; }
<ELM>optgroup/{endnm} { BEGIN(ATT); return tok_el_optgroup; }
<ELM>option/{endnm} { BEGIN(ATT); return tok_el_option; }
<ELM>p/{endnm} { BEGIN(ATT); return tok_el_p; }
<ELM>param/{endnm} { BEGIN(ATT); return tok_el_param; }
<ELM>pre/{endnm} { BEGIN(ATT); return tok_el_pre; }
<ELM>q/{endnm} { BEGIN(ATT); return tok_el_q; }
<ELM>samp/{endnm} { BEGIN(ATT); return tok_el_samp; }
<ELM>script/{endnm} { BEGIN(ATT); return tok_el_script; }
<ELM>select/{endnm} { BEGIN(ATT); return tok_el_select; }
<ELM>small/{endnm} { BEGIN(ATT); return tok_el_small; }
<ELM>span/{endnm} { BEGIN(ATT); return tok_el_span; }
<ELM>strike/{endnm} { BEGIN(ATT); return tok_el_strike; }
<ELM>strong/{endnm} { BEGIN(ATT); return tok_el_strong; }
<ELM>style/{endnm} { BEGIN(ATT); return tok_el_style; }
<ELM>sub/{endnm} { BEGIN(ATT); return tok_el_sub; }
<ELM>sup/{endnm} { BEGIN(ATT); return tok_el_sup; }
<ELM>table/{endnm} { BEGIN(ATT); return tok_el_table; }
<ELM>tbody/{endnm} { BEGIN(ATT); return tok_el_tbody; }
<ELM>td/{endnm} { BEGIN(ATT); return tok_el_td; }
<ELM>textarea/{endnm} { BEGIN(ATT); return tok_el_textarea; }
<ELM>tfoot/{endnm} { BEGIN(ATT); return tok_el_tfoot; }
<ELM>th/{endnm} { BEGIN(ATT); return tok_el_th; }
<ELM>thead/{endnm} { BEGIN(ATT); return tok_el_thead; }
<ELM>title/{endnm} { BEGIN(ATT); return tok_el_title; }
<ELM>tr/{endnm} { BEGIN(ATT); return tok_el_tr; }
<ELM>tt/{endnm} { BEGIN(ATT); return tok_el_tt; }
<ELM>u/{endnm} { BEGIN(ATT); return tok_el_u; }
<ELM>ul/{endnm} { BEGIN(ATT); return tok_el_ul; }
<ELM>var/{endnm} { BEGIN(ATT); return tok_el_var; }
<ELM>{elname} { BEGIN(ATT); return tok_el_unknown; }
<ELM>{wsp}+ { return tok_wsp; }
<ELM>{notspecial}+ { return tok_text; }
<ELM>. { return yytext[0]; }
<ATT>accept/{endnm} { return tok_at_accept; }
<ATT>accept-charset/{endnm} { return tok_at_accept_charset; }
<ATT>accesskey/{endnm} { return tok_at_accesskey; }
<ATT>action/{endnm} { return tok_at_action; }
<ATT>align/{endnm} { return tok_at_align; }
<ATT>alink/{endnm} { return tok_at_alink; }
<ATT>alt/{endnm} { return tok_at_alt; }
<ATT>archive/{endnm} { return tok_at_archive; }
<ATT>axis/{endnm} { return tok_at_axis; }
<ATT>background/{endnm} { return tok_at_background; }
<ATT>bbr/{endnm} { return tok_at_bbr; }
<ATT>bgcolor/{endnm} { return tok_at_bgcolor; }
<ATT>border/{endnm} { return tok_at_border; }
<ATT>cellpadding/{endnm} { return tok_at_cellpadding; }
<ATT>cellspacing/{endnm} { return tok_at_cellspacing; }
<ATT>char/{endnm} { return tok_at_char; }
<ATT>charoff/{endnm} { return tok_at_charoff; }
<ATT>charset/{endnm} { return tok_at_charset; }
<ATT>checked/{endnm} { return tok_at_checked; }
<ATT>cite/{endnm} { return tok_at_cite; }
<ATT>class/{endnm} { return tok_at_class; }
<ATT>classid/{endnm} { return tok_at_classid; }
<ATT>clear/{endnm} { return tok_at_clear; }
<ATT>code/{endnm} { return tok_at_code; }
<ATT>codebase/{endnm} { return tok_at_codebase; }
<ATT>codetype/{endnm} { return tok_at_codetype; }
<ATT>color/{endnm} { return tok_at_color; }
<ATT>cols/{endnm} { return tok_at_cols; }
<ATT>colspan/{endnm} { return tok_at_colspan; }
<ATT>compact/{endnm} { return tok_at_compact; }
<ATT>content/{endnm} { return tok_at_content; }
<ATT>coords/{endnm} { return tok_at_coords; }
<ATT>data/{endnm} { return tok_at_data; }
<ATT>datetime/{endnm} { return tok_at_datetime; }
<ATT>declare/{endnm} { return tok_at_declare; }
<ATT>defer/{endnm} { return tok_at_defer; }
<ATT>dir/{endnm} { return tok_at_dir; }
<ATT>disabled/{endnm} { return tok_at_disabled; }
<ATT>enctype/{endnm} { return tok_at_enctype; }
<ATT>face/{endnm} { return tok_at_face; }
<ATT>for/{endnm} { return tok_at_for; }
<ATT>frame/{endnm} { return tok_at_frame; }
<ATT>frameborder/{endnm} { return tok_at_frameborder; }
<ATT>headers/{endnm} { return tok_at_headers; }
<ATT>height/{endnm} { return tok_at_height; }
<ATT>href/{endnm} { return tok_at_href; }
<ATT>hreflang/{endnm} { return tok_at_hreflang; }
<ATT>hspace/{endnm} { return tok_at_hspace; }
<ATT>http-equiv/{endnm} { return tok_at_http_equiv; }
<ATT>id/{endnm} { return tok_at_id; }
<ATT>ismap/{endnm} { return tok_at_ismap; }
<ATT>label/{endnm} { return tok_at_label; }
<ATT>lang/{endnm} { return tok_at_lang; }
<ATT>language/{endnm} { return tok_at_language; }
<ATT>link/{endnm} { return tok_at_link; }
<ATT>longdesc/{endnm} { return tok_at_longdesc; }
<ATT>marginheight/{endnm} { return tok_at_marginheight; }
<ATT>marginwidth/{endnm} { return tok_at_marginwidth; }
<ATT>maxlength/{endnm} { return tok_at_maxlength; }
<ATT>media/{endnm} { return tok_at_media; }
<ATT>method/{endnm} { return tok_at_method; }
<ATT>multiple/{endnm} { return tok_at_multiple; }
<ATT>name/{endnm} { return tok_at_name; }
<ATT>nohref/{endnm} { return tok_at_nohref; }
<ATT>noresize/{endnm} { return tok_at_noresize; }
<ATT>noshade/{endnm} { return tok_at_noshade; }
<ATT>nowrap/{endnm} { return tok_at_nowrap; }
<ATT>object/{endnm} { return tok_at_object; }
<ATT>onblur/{endnm} { return tok_at_onblur; }
<ATT>onchange/{endnm} { return tok_at_onchange; }
<ATT>onclick/{endnm} { return tok_at_onclick; }
<ATT>ondblclick/{endnm} { return tok_at_ondblclick; }
<ATT>onfocus/{endnm} { return tok_at_onfocus; }
<ATT>onkeydown/{endnm} { return tok_at_onkeydown; }
<ATT>onkeypress/{endnm} { return tok_at_onkeypress; }
<ATT>onkeyup/{endnm} { return tok_at_onkeyup; }
<ATT>onload/{endnm} { return tok_at_onload; }
<ATT>onmousedown/{endnm} { return tok_at_onmousedown; }
<ATT>onmousemove/{endnm} { return tok_at_onmousemove; }
<ATT>onmouseout/{endnm} { return tok_at_onmouseout; }
<ATT>onmouseover/{endnm} { return tok_at_onmouseover; }
<ATT>onmouseup/{endnm} { return tok_at_onmouseup; }
<ATT>onreset/{endnm} { return tok_at_onreset; }
<ATT>onselect/{endnm} { return tok_at_onselect; }
<ATT>onsubmit/{endnm} { return tok_at_onsubmit; }
<ATT>onunload/{endnm} { return tok_at_onunload; }
<ATT>profile/{endnm} { return tok_at_profile; }
<ATT>prompt/{endnm} { return tok_at_prompt; }
<ATT>readonly/{endnm} { return tok_at_readonly; }
<ATT>rel/{endnm} { return tok_at_rel; }
<ATT>rev/{endnm} { return tok_at_rev; }
<ATT>rows/{endnm} { return tok_at_rows; }
<ATT>rowspan/{endnm} { return tok_at_rowspan; }
<ATT>rules/{endnm} { return tok_at_rules; }
<ATT>scheme/{endnm} { return tok_at_scheme; }
<ATT>scope/{endnm} { return tok_at_scope; }
<ATT>scrolling/{endnm} { return tok_at_scrolling; }
<ATT>selected/{endnm} { return tok_at_selected; }
<ATT>shape/{endnm} { return tok_at_shape; }
<ATT>size/{endnm} { return tok_at_size; }
<ATT>span/{endnm} { return tok_at_span; }
<ATT>src/{endnm} { return tok_at_src; }
<ATT>standby/{endnm} { return tok_at_standby; }
<ATT>start/{endnm} { return tok_at_start; }
<ATT>style/{endnm} { return tok_at_style; }
<ATT>summary/{endnm} { return tok_at_summary; }
<ATT>tabindex/{endnm} { return tok_at_tabindex; }
<ATT>target/{endnm} { return tok_at_target; }
<ATT>text/{endnm} { return tok_at_text; }
<ATT>title/{endnm} { return tok_at_title; }
<ATT>type/{endnm} { return tok_at_type; }
<ATT>usemap/{endnm} { return tok_at_usemap; }
<ATT>valign/{endnm} { return tok_at_valign; }
<ATT>value/{endnm} { return tok_at_value; }
<ATT>valuetype/{endnm} { return tok_at_valuetype; }
<ATT>version/{endnm} { return tok_at_version; }
<ATT>vlink/{endnm} { return tok_at_vlink; }
<ATT>vspace/{endnm} { return tok_at_vspace; }
<ATT>width/{endnm} { return tok_at_width; }
<ATT>{attrname}+ { return tok_at_unknown; }
<ATT>[>] { BEGIN(INITIAL); return yytext[0]; }
<ATT>{wsp}+ { return tok_wsp; }
<ATT>{notspecial}+ { return tok_text; }
<ATT>\"[^\"]*\" { return tok_text; }
<ATT>'[^']*' { return tok_text; }
<ATT>. { return yytext[0]; }
%%
|