module Text.Highlighter.Lexers.Brainfuck (lexer) where import Text.Regex.PCRE.Light import Text.Highlighter.Types lexer :: Lexer lexer = Lexer { lName = "\66\114\97\105\110\102\117\99\107" , lAliases = ["\98\114\97\105\110\102\117\99\107", "\98\102"] , lExtensions = ["\46\98\102", "\46\98"] , lMimetypes = ["\97\112\112\108\105\99\97\116\105\111\110\47\120\45\98\114\97\105\110\102\117\99\107"] , lStart = root' , lFlags = [multiline] } root' :: TokenMatcher root' = [ tokNext "\92\91" (Arbitrary "\75\101\121\119\111\114\100") (GoTo loop') , tok "\92\93" (Arbitrary "\69\114\114\111\114") , anyOf common' ] common' :: TokenMatcher common' = [ tok "\91\46\44\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\84\97\103") , tok "\91\43\45\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110") , tok "\91\60\62\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101") , tok "\91\94\46\44\43\92\45\60\62\92\91\92\93\93\43" (Arbitrary "\67\111\109\109\101\110\116") ] loop' :: TokenMatcher loop' = [ tokNext "\92\91" (Arbitrary "\75\101\121\119\111\114\100") Push , tokNext "\92\93" (Arbitrary "\75\101\121\119\111\114\100") Pop , anyOf common' ]