relit-0.1.1: Literal for regular expression

Text.Regex.Literal

Description

Literal notation for regular expression.

Importing this module with the QuasiQuotes and OverloadedStrings extensions making possible to directly specify reqular expression literal. This means that awkward backslashes are not necessary.

You can copy a regular expression in other languages and paste it to your Haskell program.

Sample code:

    { -# LANGUAGE QuasiQuotes, OverloadedStrings, CPP #- }
    -- Due to Haddock limitation, spaces are inserted after and before "}".
    -- Remove them if you copy this.

    import Text.Regex.Literal
    import Text.Regex.Posix

    -- Regular expression as the String literal
    -- regexp :: Regex
    -- regexp = makeRegex ("\\\\(foo)\\\\(bar\\.c)" :: String)
    
    -- Regular expression as the regular expression literal
    regexp :: Regex
    -- Due to Haddock limitation, spaces are inserted between "-"s.
    -- Remove them if you copy this.
    #if _ _GLASGOW_HASKELL_ _ >= 700
    regexp = [re|\\(foo)\\(bar\.c)|]
    #else
    regexp = [$re|\\(foo)\\(bar\.c)|]
    #endif

Synopsis

Documentation

re :: QuasiQuoterSource

A QuasiQuoter function to implement regular expression literal.