module Text.Highlighter.Lexers.MOOCode (lexer) where

import Text.Regex.PCRE.Light
import Text.Highlighter.Types

lexer :: Lexer
lexer = Lexer
    { lName = "\77\79\79\67\111\100\101"
    , lAliases = ["\109\111\111\99\111\100\101"]
    , lExtensions = ["\46\109\111\111"]
    , lMimetypes = ["\116\101\120\116\47\120\45\109\111\111\99\111\100\101"]
    , lStart = root'
    , lFlags = [multiline]
    }

root' :: TokenMatcher
root' =
    [ tok "\40\48\124\91\49\45\57\93\91\48\45\57\95\93\42\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")
    , tok "\34\40\92\92\92\92\124\92\92\34\124\91\94\34\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")
    , tok "\40\69\95\80\69\82\77\124\69\95\68\73\86\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\69\120\99\101\112\116\105\111\110")
    , tok "\40\40\35\91\45\48\45\57\93\43\41\124\40\92\36\91\97\45\122\95\65\45\90\48\45\57\93\43\41\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\69\110\116\105\116\121")
    , tok "\92\98\40\105\102\124\101\108\115\101\124\101\108\115\101\105\102\124\101\110\100\105\102\124\102\111\114\124\101\110\100\102\111\114\124\102\111\114\107\124\101\110\100\102\111\114\107\124\119\104\105\108\101\124\101\110\100\119\104\105\108\101\124\98\114\101\97\107\124\99\111\110\116\105\110\117\101\124\114\101\116\117\114\110\124\116\114\121\124\101\120\99\101\112\116\124\101\110\100\116\114\121\124\102\105\110\97\108\108\121\124\105\110\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")
    , tok "\40\114\97\110\100\111\109\124\108\101\110\103\116\104\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")
    , tok "\40\112\108\97\121\101\114\124\99\97\108\108\101\114\124\116\104\105\115\124\97\114\103\115\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101" :. Arbitrary "\73\110\115\116\97\110\99\101")
    , tok "\92\115\43" (Arbitrary "\84\101\120\116")
    , tok "\92\110" (Arbitrary "\84\101\120\116")
    , tok "\40\91\33\59\61\44\123\125\38\92\124\58\92\46\92\91\92\93\64\92\40\92\41\92\60\92\62\92\63\93\43\41" (Arbitrary "\79\112\101\114\97\116\111\114")
    , tok "\40\91\97\45\122\95\65\45\90\48\45\57\93\43\41\40\92\40\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110"), (Arbitrary "\79\112\101\114\97\116\111\114")])
    , tok "\40\91\97\45\122\65\45\90\95\48\45\57\93\43\41" (Arbitrary "\84\101\120\116")
    ]