System.FilePath.Glob.Primitive

Glob-0.7.5: Globbing library

Safe Haskell | None
Language | Haskell98

System.FilePath.Glob.Primitive

Description

A number of primitives from which complete `Pattern`s may be constructed.

Using this together with the functions provided by the `Monoid` instance of `Pattern` allows for direct manipulation of `Pattern`s beyond what can be done with just the `compile` family of functions. And of course you don't have to go via `String`s if you use these.

Synopsis

- literal :: String -> Pattern
- singleWildcard :: Pattern
- wildcard :: Pattern
- recursiveWildcard :: Pattern
- charRange :: Bool -> [Either Char (Char, Char)] -> Pattern
- numberRange :: Maybe Integer -> Maybe Integer -> Pattern

# Documentation

literal :: String -> Pattern

A `Pattern` which matches the given `String` literally.

Handles any embedded path and extension separators.

singleWildcard :: Pattern

Matches any single character except a path separator: corresponds to the `?` operator.

wildcard :: Pattern

Matches any number of characters up to a path separator: corresponds to the `*` operator.

recursiveWildcard :: Pattern

Matches any number of characters including path separators: corresponds to the `**/` operator.

charRange :: Bool -> [Either Char (Char, Char)] -> Pattern

Matches a single character if it is within the (inclusive) range in any `Right` or if it is equal to the character in any `Left`. Corresponds to the `[]`, `[^]` and `[!]` operators.

If the given `Bool` is `False`, the result of the match is inverted: the match succeeds if the character does not match according to the above rules.

numberRange :: Maybe Integer -> Maybe Integer -> Pattern

Matches a number in the given range, which may be open, half-open, or closed. Corresponds to the `<>` operator.