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

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

lexer :: Lexer
lexer = Lexer
    { lName = "\82\101\100\99\111\100\101"
    , lAliases = ["\114\101\100\99\111\100\101"]
    , lExtensions = ["\46\99\119"]
    , lMimetypes = []
    , lStart = root'
    , lFlags = [multiline]
    }

root' :: TokenMatcher
root' =
    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")
    , tok "\59\46\42\36" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")
    , tok "\92\98\40\68\65\84\124\77\79\86\124\65\68\68\124\83\85\66\124\77\85\76\124\68\73\86\124\77\79\68\124\74\77\80\124\74\77\90\124\74\77\78\124\68\74\78\124\67\77\80\124\83\76\84\124\83\80\76\124\79\82\71\124\69\81\85\124\69\78\68\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110")
    , tok "\92\98\40\65\124\66\124\65\66\124\66\65\124\70\124\88\124\73\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\68\101\99\111\114\97\116\111\114")
    , tok "\91\65\45\90\97\45\122\95\93\91\65\45\90\97\45\122\95\48\45\57\93\43" (Arbitrary "\78\97\109\101")
    , tok "\91\45\43\42\47\37\93" (Arbitrary "\79\112\101\114\97\116\111\114")
    , tok "\91\35\36\64\60\62\93" (Arbitrary "\79\112\101\114\97\116\111\114")
    , tok "\91\46\44\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")
    , tok "\91\45\43\93\63\92\100\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")
    ]