-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Hexadecimal ByteString literals, with placeholders that bind variables -- -- This library defines a quasiquoter for ByteStrings. As an -- expression, it provides hexadecimal ByteString literals. As a -- pattern, the hexdump can contain named placeholders of fixed size, -- which bind local variables when pattern matching. @package hexquote @version 0.1 -- | Provides a quasiquoter for hexadecimal ByteString literals, with -- placeholders that bind variables. module Data.Hex.Quote -- | As an expression, the hex quasiquoter provides -- hexadecimal ByteString literals: -- --
-- import Data.Hex.Quote -- import qualified Data.ByteString as B -- -- main = B.putStr [hex| -- 57 65 2c 20 61 6c 6f 6e 65 20 6f 6e 20 65 61 72 -- 74 68 2c 20 63 61 6e 20 72 65 62 65 6c 20 61 67 -- 61 69 6e 73 74 20 74 68 65 20 74 79 72 61 6e 6e -- 79 20 6f 66 20 74 68 65 20 73 65 6c 66 69 73 68 -- 20 72 65 70 6c 69 63 61 74 6f 72 73 2e 0a |] ---- -- All characters other than 0123456789abcdefABCDEF are ignored, -- including whitespace. Comments start with "--" and continue -- to end-of-line: -- --
-- code = [hex| -- 7e3a -- jle 0x3c -- 4889f5 -- mov rbp, rsi -- bb01000000 -- mov ebx, 0x1 -- 488b7d08 |] -- mov rdi, [rbp+0x8] ---- -- When using hex as a pattern, you can include -- placeholders of the form <name:size>, where -- --
-- import Data.Hex.Quote -- -- describe [hex| -- <src_mac:6> <dst_mac:6> 08 00 -- ethernet header -- 45 <_:1> <len:2> -- start of IP header -- <_:rest> -- discard remaining frame -- |] = (src_mac, dst_mac, len) -- -- describe _ = error "unknown frame" ---- -- Quasiquotes require the QuasiQuotes extension. In pattern -- context, hex also requires the ViewPatterns -- extension. hex :: QuasiQuoter -- | The hexadecimal parser used for hex expressions. parseHex :: String -> [Word8] instance Show Tok