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.