Stability | experimental |
---|---|
Maintainer | Sebastian Fischer <mailto:sebf@informatik.uni-kiel.de> |
This module implements leftmost longest matching based on weighted regular expressions. It should be imported qualified as the interface resembles that provided by other matching modules.
Documentation
matching :: RegExp c -> [c] -> Maybe MatchingSource
Returns the leftmost longest of all non-empty matchings for a regular expression in a given word. If the empty word is the only matching its position is zero.
Subwords of words that match a regular expression are represented
as values of type Matching
.
matchingIndex :: Matching -> IntSource
Start index of the matching subword in the queried word.
matchingLength :: Matching -> IntSource
Length of the matching subword.
Semiring used for leftmost longest matching.
The LeftLong
type satisfies the distributive laws only with a
precondition on all involved multiplications: multiplied matches
must be adjacent and the start position must be smaller than the
end position. This precondition is satisfied for all
multiplications during regular expression matching.