Portability | portable |
---|---|
Stability | experimental |
Maintainer | Uwe Schmidt (uwe@fh-wedel.de) |
Safe Haskell | None |
Regular Expression Matcher working on lists of XmlTrees
It's intended to import this module with an explicit import declaration for not spoiling the namespace with these somewhat special arrows
- data XmlRegex
- mkZero :: String -> XmlRegex
- mkUnit :: XmlRegex
- mkPrim :: (XmlTree -> Bool) -> XmlRegex
- mkPrim' :: (XmlTree -> Bool) -> String -> XmlRegex
- mkPrimA :: LA XmlTree XmlTree -> XmlRegex
- mkDot :: XmlRegex
- mkStar :: XmlRegex -> XmlRegex
- mkAlt :: XmlRegex -> XmlRegex -> XmlRegex
- mkAlts :: [XmlRegex] -> XmlRegex
- mkSeq :: XmlRegex -> XmlRegex -> XmlRegex
- mkSeqs :: [XmlRegex] -> XmlRegex
- mkRep :: Int -> XmlRegex -> XmlRegex
- mkRng :: Int -> Int -> XmlRegex -> XmlRegex
- mkOpt :: XmlRegex -> XmlRegex
- mkPerm :: XmlRegex -> XmlRegex -> XmlRegex
- mkPerms :: [XmlRegex] -> XmlRegex
- mkMerge :: XmlRegex -> XmlRegex -> XmlRegex
- nullable :: XmlRegex -> Bool
- delta :: XmlRegex -> XmlTree -> XmlRegex
- matchXmlRegex :: XmlRegex -> XmlTrees -> Maybe String
- splitXmlRegex :: XmlRegex -> XmlTrees -> Maybe (XmlTrees, XmlTrees)
- scanXmlRegex :: XmlRegex -> XmlTrees -> Maybe [XmlTrees]
- matchRegexA :: XmlRegex -> LA XmlTree XmlTree -> LA XmlTree XmlTrees
- splitRegexA :: XmlRegex -> LA XmlTree XmlTree -> LA XmlTree (XmlTrees, XmlTrees)
- scanRegexA :: XmlRegex -> LA XmlTree XmlTree -> LA XmlTree XmlTrees
Documentation
matchXmlRegex :: XmlRegex -> XmlTrees -> Maybe StringSource
match a sequence of XML trees with a regular expression over trees
If the input matches, the result is Nothing, else Just an error message is returned
splitXmlRegex :: XmlRegex -> XmlTrees -> Maybe (XmlTrees, XmlTrees)Source
split a sequence of XML trees into a pair of a a matching prefix and a rest
If there is no matching prefix, Nothing is returned
scanXmlRegex :: XmlRegex -> XmlTrees -> Maybe [XmlTrees]Source
scan a sequence of XML trees and split it into parts matching the given regex
If the parts cannot be split because of a missing match, or because of the empty sequence as match, Nothing is returned
splitRegexA :: XmlRegex -> LA XmlTree XmlTree -> LA XmlTree (XmlTrees, XmlTrees)Source
split the sequence of trees computed by the filter a into
The arrow for splitXmlRegex
.
a first part matching the regex and a rest, if a prefix of the input sequence does not match the regex, the arrow fails else the pair containing the result lists is returned
scanRegexA :: XmlRegex -> LA XmlTree XmlTree -> LA XmlTree XmlTreesSource
scan the input sequence with a regex and give the result as a list of lists of trees back the regex must at least match one input tree, so the empty sequence should not match the regex
The arrow for scanXmlRegex
.