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

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

lexer :: Lexer
lexer = Lexer
    { lName = "\68\101\98\105\97\110\32\67\111\110\116\114\111\108\32\102\105\108\101"
    , lAliases = ["\99\111\110\116\114\111\108"]
    , lExtensions = ["\99\111\110\116\114\111\108"]
    , lMimetypes = []
    , lStart = root'
    , lFlags = [multiline]
    }

maintainer' :: TokenMatcher
maintainer' =
    [ tok "\60\91\94\62\93\43\62" (Arbitrary "\71\101\110\101\114\105\99" :. Arbitrary "\83\116\114\111\110\103")
    , tokNext "\60\91\94\62\93\43\62\36" (Arbitrary "\71\101\110\101\114\105\99" :. Arbitrary "\83\116\114\111\110\103") Pop
    , tok "\44\92\110\63" (Arbitrary "\84\101\120\116")
    , tok "\46" (Arbitrary "\84\101\120\116")
    ]

depends' :: TokenMatcher
depends' =
    [ tok "\58\92\115\42" (Arbitrary "\84\101\120\116")
    , tok "\40\92\36\41\40\92\123\41\40\92\119\43\92\115\42\58\92\115\42\92\119\43\41" (ByGroups [(Arbitrary "\79\112\101\114\97\116\111\114"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\69\110\116\105\116\121")])
    , tokNext "\92\40" (Arbitrary "\84\101\120\116") (GoTo depend_vers')
    , tok "\44" (Arbitrary "\84\101\120\116")
    , tok "\92\124" (Arbitrary "\79\112\101\114\97\116\111\114")
    , tok "\91\92\115\93\43" (Arbitrary "\84\101\120\116")
    , tokNext "\91\125\92\41\93\92\115\42\36" (Arbitrary "\84\101\120\116") Pop
    , tok "\91\125\93" (Arbitrary "\84\101\120\116")
    , tokNext "\91\94\44\93\36" (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110") Pop
    , tok "\40\91\92\43\92\46\97\45\122\65\45\90\48\45\57\45\93\91\92\115\92\110\93\42\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110")
    , tok "\92\91\46\42\63\92\93" (Arbitrary "\78\97\109\101" :. Arbitrary "\69\110\116\105\116\121")
    ]

root' :: TokenMatcher
root' =
    [ tokNext "\94\40\68\101\115\99\114\105\112\116\105\111\110\41" (Arbitrary "\75\101\121\119\111\114\100") (GoTo description')
    , tokNext "\94\40\77\97\105\110\116\97\105\110\101\114\41\40\58\92\115\42\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")]) (GoTo maintainer')
    , tokNext "\94\40\40\66\117\105\108\100\45\41\63\68\101\112\101\110\100\115\41" (Arbitrary "\75\101\121\119\111\114\100") (GoTo depends')
    , tok "\94\40\40\63\58\80\121\116\104\111\110\45\41\63\86\101\114\115\105\111\110\41\40\58\92\115\42\41\40\91\94\92\115\93\43\41\36" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")])
    , tok "\94\40\40\63\58\73\110\115\116\97\108\108\101\100\45\41\63\83\105\122\101\41\40\58\92\115\42\41\40\91\94\92\115\93\43\41\36" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")])
    , tok "\94\40\77\68\53\83\117\109\124\83\72\65\49\124\83\72\65\50\53\54\41\40\58\92\115\42\41\40\91\94\92\115\93\43\41\36" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")])
    , tok "\94\40\91\97\45\122\65\45\90\92\45\48\45\57\92\46\93\42\63\41\40\58\92\115\42\41\40\46\42\63\41\36" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116" :. Arbitrary "\87\104\105\116\101\115\112\97\99\101"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")])
    ]

description' :: TokenMatcher
description' =
    [ tok "\40\46\42\41\40\72\111\109\101\112\97\103\101\41\40\58\32\41\40\91\94\92\115\93\43\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103"), (Arbitrary "\78\97\109\101"), (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115")])
    , tok "\58\46\42\92\110" (Arbitrary "\71\101\110\101\114\105\99" :. Arbitrary "\83\116\114\111\110\103")
    , tok "\32\46\42\92\110" (Arbitrary "\84\101\120\116")
    , tokNext "" (Arbitrary "\84\101\120\116") Pop
    ]

depend_vers' :: TokenMatcher
depend_vers' =
    [ tokNext "\92\41\44" (Arbitrary "\84\101\120\116") Pop
    , tokNext "\92\41\91\94\44\93" (Arbitrary "\84\101\120\116") (PopNum 2)
    , tok "\40\91\62\60\61\93\43\41\40\92\115\42\41\40\91\94\92\41\93\43\41" (ByGroups [(Arbitrary "\79\112\101\114\97\116\111\114"), (Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")])
    ]