summaryrefslogtreecommitdiffstats
path: root/hc.l
diff options
context:
space:
mode:
Diffstat (limited to 'hc.l')
-rw-r--r--hc.l243
1 files changed, 243 insertions, 0 deletions
diff --git a/hc.l b/hc.l
new file mode 100644
index 0000000..8d16781
--- /dev/null
+++ b/hc.l
@@ -0,0 +1,243 @@
+/* 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]
+ctrl [\x0-\x1f]
+notctrl [^\x0-\x1f]
+special ["'<>/=&]
+notspecial [^"'<>/=&]
+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 '<'; }
+{notspecial}+ { 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>. { 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>. { return yytext[0]; }
+
+%%