highlighter2-0.2.3: src/Text/Highlighter/Lexers/Befunge.hs
module Text.Highlighter.Lexers.Befunge (lexer) where
import Text.Regex.PCRE.Light
import Text.Highlighter.Types
lexer :: Lexer
lexer = Lexer
{ lName = "Befunge"
, lAliases = ["befunge"]
, lExtensions = [".befunge"]
, lMimetypes = ["application/x-befunge"]
, lStart = root'
, lFlags = [multiline]
}
root' :: TokenMatcher
root' =
[ tok "[0-9a-f]" (Arbitrary "Literal" :. Arbitrary "Number")
, tok "[\\+\\*/%!`-]" (Arbitrary "Operator")
, tok "[<>^v?\\[\\]rxjk]" (Arbitrary "Name" :. Arbitrary "Variable")
, tok "[:\\\\$.,n]" (Arbitrary "Name" :. Arbitrary "Builtin")
, tok "[|_mw]" (Arbitrary "Keyword")
, tok "[{}]" (Arbitrary "Name" :. Arbitrary "Tag")
, tok "\".*?\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")
, tok "\\'." (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Single")
, tok "[#;]" (Arbitrary "Comment")
, tok "[pg&\126=@iotsy]" (Arbitrary "Keyword")
, tok "[()A-Z]" (Arbitrary "Comment")
, tok "\\s+" (Arbitrary "Text")
]