module Text.Highlighter.Lexers.Html (lexer) where import qualified Text.Highlighter.Lexers.Css as Css import qualified Text.Highlighter.Lexers.Javascript as Javascript import Text.Regex.PCRE.Light import Text.Highlighter.Types lexer :: Lexer lexer = Lexer { lName = "\74\97\118\97\115\99\114\105\112\116" , lAliases = ["\104\116\109\108"] , lExtensions = ["\46\104\116\109\108", "\46\104\116\109", "\46\120\104\116\109\108", "\46\120\115\108\116"] , lMimetypes = ["\116\101\120\116\47\104\116\109\108", "\97\112\112\108\105\99\97\116\105\111\110\47\120\104\116\109\108\43\120\109\108"] , lStart = root' , lFlags = [caseless, dotall] } comment' :: TokenMatcher comment' = [ tok "\91\94\45\93\43" (Arbitrary "\67\111\109\109\101\110\116") , tokNext "\45\45\62" (Arbitrary "\67\111\109\109\101\110\116") Pop , tok "\45" (Arbitrary "\67\111\109\109\101\110\116") ] styleContent' :: TokenMatcher styleContent' = [ tokNext "\60\92\115\42\47\92\115\42\115\116\121\108\101\92\115\42\62" (Arbitrary "\78\97\109\101" :. Arbitrary "\84\97\103") Pop , tok "\46\43\63\40\63\61\60\92\115\42\47\92\115\42\115\116\121\108\101\92\115\42\62\41" (Using Css.lexer) ] attr' :: TokenMatcher attr' = [ tokNext "\34\46\42\63\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop , tokNext "\39\46\42\63\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop , tokNext "\91\94\92\115\62\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop ] scriptContent' :: TokenMatcher scriptContent' = [ tokNext "\60\92\115\42\47\92\115\42\115\99\114\105\112\116\92\115\42\62" (Arbitrary "\78\97\109\101" :. Arbitrary "\84\97\103") Pop , tok "\46\43\63\40\63\61\60\92\115\42\47\92\115\42\115\99\114\105\112\116\92\115\42\62\41" (Using Javascript.lexer) ] tag' :: TokenMatcher tag' = [ tok "\92\115\43" (Arbitrary "\84\101\120\116") , tokNext "\91\97\45\122\65\45\90\48\45\57\95\58\45\93\43\92\115\42\61" (Arbitrary "\78\97\109\101" :. Arbitrary "\65\116\116\114\105\98\117\116\101") (GoTo attr') , tok "\91\97\45\122\65\45\90\48\45\57\95\58\45\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\65\116\116\114\105\98\117\116\101") , tokNext "\47\63\92\115\42\62" (Arbitrary "\78\97\109\101" :. Arbitrary "\84\97\103") Pop ] root' :: TokenMatcher root' = [ tok "\91\94\60\38\93\43" (Arbitrary "\84\101\120\116") , tok "\38\92\83\42\63\59" (Arbitrary "\78\97\109\101" :. Arbitrary "\69\110\116\105\116\121") , tok "\92\60\92\33\92\91\67\68\65\84\65\92\91\46\42\63\92\93\92\93\92\62" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") , tokNext "\60\33\45\45" (Arbitrary "\67\111\109\109\101\110\116") (GoTo comment') , tok "\60\92\63\46\42\63\92\63\62" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") , tok "\60\33\91\94\62\93\42\62" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") , tokNext "\60\92\115\42\115\99\114\105\112\116\92\115\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\84\97\103") (DoAll [(GoTo scriptContent'), (GoTo tag')]) , tokNext "\60\92\115\42\115\116\121\108\101\92\115\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\84\97\103") (DoAll [(GoTo styleContent'), (GoTo tag')]) , tokNext "\60\92\115\42\91\97\45\122\65\45\90\48\45\57\58\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\84\97\103") (GoTo tag') , tok "\60\92\115\42\47\92\115\42\91\97\45\122\65\45\90\48\45\57\58\93\43\92\115\42\62" (Arbitrary "\78\97\109\101" :. Arbitrary "\84\97\103") ]