module Text.Highlighter.Lexers.PythonTraceback (lexer) where
import qualified Text.Highlighter.Lexers.Python as Python
import Text.Regex.PCRE.Light
import Text.Highlighter.Types

lexer :: Lexer
lexer = Lexer
    { lName = "\80\121\116\104\111\110"
    , lAliases = ["\112\121\116\98"]
    , lExtensions = ["\46\112\121\116\98"]
    , lMimetypes = ["\116\101\120\116\47\120\45\112\121\116\104\111\110\45\116\114\97\99\101\98\97\99\107"]
    , lStart = root'
    , lFlags = [multiline]
    }

root' :: TokenMatcher
root' =
    [ tokNext "\94\84\114\97\99\101\98\97\99\107\32\92\40\109\111\115\116\32\114\101\99\101\110\116\32\99\97\108\108\32\108\97\115\116\92\41\58\92\110" (Arbitrary "\71\101\110\101\114\105\99" :. Arbitrary "\84\114\97\99\101\98\97\99\107") (GoTo intb')
    , tokNext "\94\40\63\61\32\32\70\105\108\101\32\34\91\94\34\93\43\34\44\32\108\105\110\101\32\92\100\43\41" (Arbitrary "\71\101\110\101\114\105\99" :. Arbitrary "\84\114\97\99\101\98\97\99\107") (GoTo intb')
    , tok "\94\46\42\92\110" (Arbitrary "\79\116\104\101\114")
    ]

intb' :: TokenMatcher
intb' =
    [ tok "\94\40\32\32\70\105\108\101\32\41\40\34\91\94\34\93\43\34\41\40\44\32\108\105\110\101\32\41\40\92\100\43\41\40\44\32\105\110\32\41\40\46\43\41\40\92\110\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110"), (Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\73\100\101\110\116\105\102\105\101\114"), (Arbitrary "\84\101\120\116")])
    , tok "\94\40\32\32\70\105\108\101\32\41\40\34\91\94\34\93\43\34\41\40\44\32\108\105\110\101\32\41\40\92\100\43\41\40\92\110\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110"), (Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114"), (Arbitrary "\84\101\120\116")])
    , tok "\94\40\32\32\32\32\41\40\46\43\41\40\92\110\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Using Python.lexer), (Arbitrary "\84\101\120\116")])
    , tok "\94\40\91\32\92\116\93\42\41\40\46\46\46\41\40\92\110\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\67\111\109\109\101\110\116"), (Arbitrary "\84\101\120\116")])
    , tokNext "\94\40\46\43\41\40\58\32\41\40\46\43\41\40\92\110\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\73\100\101\110\116\105\102\105\101\114"), (Arbitrary "\84\101\120\116")]) Pop
    , tokNext "\94\40\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\40\58\63\92\110\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115"), (Arbitrary "\84\101\120\116")]) Pop
    ]