highlighter-0.2: src/Text/Highlighter/Lexers/Objdump.hs
module Text.Highlighter.Lexers.Objdump (lexer) where
import qualified Text.Highlighter.Lexers.Gas as Gas
import Text.Regex.PCRE.Light
import Text.Highlighter.Types
lexer :: Lexer
lexer = Lexer
{ lName = "objdump"
, lAliases = ["objdump"]
, lExtensions = [".objdump"]
, lMimetypes = ["text/x-objdump"]
, lStart = root'
, lFlags = [multiline]
}
root' :: TokenMatcher
root' =
[ tok "(.*?)(:)( +file format )(.*?)$" (ByGroups [(Arbitrary "Name" :. Arbitrary "Label"), (Arbitrary "Punctuation"), (Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "String")])
, tok "(Disassembly of section )(.*?)(:)$" (ByGroups [(Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Label"), (Arbitrary "Punctuation")])
, tok "([0-9A-Za-z]+)( )(<)(.*?)([-+])(0[xX][A-Za-z0-9]+)(>:)$" (ByGroups [(Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex"), (Arbitrary "Text"), (Arbitrary "Punctuation"), (Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Punctuation"), (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex"), (Arbitrary "Punctuation")])
, tok "([0-9A-Za-z]+)( )(<)(.*?)(>:)$" (ByGroups [(Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex"), (Arbitrary "Text"), (Arbitrary "Punctuation"), (Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Punctuation")])
, tok "( *)([0-9A-Za-z]+:)(\\t)((?:[0-9A-Za-z][0-9A-Za-z] )+)( *\9)([a-zA-Z].*?)$" (ByGroups [(Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Label"), (Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex"), (Arbitrary "Text"), (Using Gas.lexer)])
, tok "( *)([0-9A-Za-z]+:)(\\t)((?:[0-9A-Za-z][0-9A-Za-z] )+)( *)(.*?)$" (ByGroups [(Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Label"), (Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex"), (Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "String")])
, tok "( *)([0-9A-Za-z]+:)(\\t)((?:[0-9A-Za-z][0-9A-Za-z] )+)$" (ByGroups [(Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Label"), (Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")])
, tok "\9\\.\\.\\.$" (Arbitrary "Text")
, tok "(\9\9\9)([0-9A-Za-z]+:)( )([^\9]+)(\9)(.*?)([-+])(0x[0-9A-Za-z]+)$" (ByGroups [(Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Label"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Property"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Constant"), (Arbitrary "Punctuation"), (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")])
, tok "(\9\9\9)([0-9A-Za-z]+:)( )([^\9]+)(\9)(.*?)$" (ByGroups [(Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Label"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Property"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Constant")])
, tok "[^\10]+\10" (Arbitrary "Other")
]