highlighter-0.1: src/Text/Highlighter/Lexers/Tex.hs
module Text.Highlighter.Lexers.Tex (lexer) where
import Text.Regex.PCRE.Light
import Text.Highlighter.Types
lexer :: Lexer
lexer = Lexer
{ lName = "\84\101\88"
, lAliases = ["\116\101\120", "\108\97\116\101\120"]
, lExtensions = ["\46\116\101\120", "\46\97\117\120", "\46\116\111\99"]
, lMimetypes = ["\116\101\120\116\47\120\45\116\101\120", "\116\101\120\116\47\120\45\108\97\116\101\120"]
, lStart = root'
, lFlags = [multiline]
}
displaymath' :: TokenMatcher
displaymath' =
[ tokNext "\92\92\92\93" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop
, tokNext "\92\36\92\36" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop
, tok "\92\36" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")
, anyOf math'
]
general' :: TokenMatcher
general' =
[ tok "\37\46\42\63\92\110" (Arbitrary "\67\111\109\109\101\110\116")
, tok "\91\123\125\93" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")
, tok "\91\38\95\94\93" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")
]
command' :: TokenMatcher
command' =
[ tok "\92\91\46\42\63\92\93" (Arbitrary "\78\97\109\101" :. Arbitrary "\65\116\116\114\105\98\117\116\101")
, tok "\92\42" (Arbitrary "\75\101\121\119\111\114\100")
, tokNext "" (Arbitrary "\84\101\120\116") Pop
]
inlinemath' :: TokenMatcher
inlinemath' =
[ tokNext "\92\92\92\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop
, tokNext "\92\36" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop
, anyOf math'
]
root' :: TokenMatcher
root' =
[ tokNext "\92\92\92\91" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\66\97\99\107\116\105\99\107") (GoTo displaymath')
, tokNext "\92\92\92\40" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo inlinemath')
, tokNext "\92\36\92\36" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\66\97\99\107\116\105\99\107") (GoTo displaymath')
, tokNext "\92\36" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo inlinemath')
, tokNext "\92\92\40\91\97\45\122\65\45\90\93\43\124\46\41" (Arbitrary "\75\101\121\119\111\114\100") (GoTo command')
, anyOf general'
, tok "\91\94\92\92\36\37\38\95\94\123\125\93\43" (Arbitrary "\84\101\120\116")
]
math' :: TokenMatcher
math' =
[ tok "\92\92\40\91\97\45\122\65\45\90\93\43\124\46\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")
, anyOf general'
, tok "\91\48\45\57\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")
, tok "\91\45\61\33\43\42\47\40\41\92\91\92\93\93" (Arbitrary "\79\112\101\114\97\116\111\114")
, tok "\91\94\61\33\43\42\47\40\41\92\91\92\93\92\92\36\37\38\95\94\123\125\48\45\57\45\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")
]