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

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

lexer :: Lexer
lexer = Lexer
    { lName = "\71\101\116\116\101\120\116\32\67\97\116\97\108\111\103"
    , lAliases = ["\112\111\116", "\112\111"]
    , lExtensions = ["\46\112\111\116", "\46\112\111"]
    , lMimetypes = ["\97\112\112\108\105\99\97\116\105\111\110\47\120\45\103\101\116\116\101\120\116", "\116\101\120\116\47\120\45\103\101\116\116\101\120\116", "\116\101\120\116\47\103\101\116\116\101\120\116"]
    , lStart = root'
    , lFlags = [multiline]
    }

root' :: TokenMatcher
root' =
    [ tok "\94\35\44\92\115\46\42\63\36" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101")
    , tok "\94\35\58\92\115\46\42\63\36" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110")
    , tok "\94\40\35\124\35\92\46\92\115\124\35\92\124\92\115\124\35\126\92\115\124\35\92\115\41\46\42\36" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")
    , tok "\94\40\34\41\40\91\92\119\45\93\42\58\41\40\46\42\34\41\36" (ByGroups [(Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103"), (Arbitrary "\78\97\109\101" :. Arbitrary "\80\114\111\112\101\114\116\121"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")])
    , tok "\94\34\46\42\34\36" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")
    , tok "\94\40\109\115\103\105\100\124\109\115\103\105\100\95\112\108\117\114\97\108\124\109\115\103\115\116\114\41\40\92\115\43\41\40\34\46\42\34\41\36" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101"), (Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")])
    , tok "\94\40\109\115\103\115\116\114\92\91\41\40\92\100\41\40\92\93\41\40\92\115\43\41\40\34\46\42\34\41\36" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114"), (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101"), (Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")])
    ]