Data type for regular expressions.
Modulehxt-9.3.1.22Haskell2010
Text.XML.HXT.DTDValidation.RE
A module for regular expression matching based on derivatives of regular expressions.
The code was taken from Joe English (http://www.flightlab.com/~joe/sgml/validate.html). Tested and extended by Martin Schmidt.
Further references for the algorithm:
Janusz A. Brzozowski.
Derivatives of Regular Expressions. Journal of the ACM, Volume 11, Issue 4, 1964.
Mark Hopkins.
Regular Expression Package. Posted to comp.compilers, 1994. Available per FTP at ftp://iecc.com/pub/file/regex.tar.gz.
- 1 type
- 13 values
- Packagehxt-9.3.1.22
- Exports14
- LanguageHaskell2010
- LicenceMIT
- SourceRE.hs
Constructs a regular expression for an empty sequence.
returns : regular expression for an empty sequence
Constructs a regular expression for an empty set.
1.parameter errMsg : error message
returns : regular expression for an empty set
Constructs a regular expression for accepting a symbol
1.parameter sym : the symbol to be accepted
returns : regular expression for accepting a symbol
Constructs an optional repetition (*) of a regular expression
1.parameter re_a : regular expression to be repeted
returns : new regular expression
Constructs a repetition (+) of a regular expression
1.parameter re_a : regular expression to be repeted
returns : new regular expression
Constructs an option (?) of a regular expression
1.parameter re_a : regular expression to be optional
returns : new regular expression
Constructs a sequence (,) of two regular expressions
1.parameter re_a : first regular expression in sequence
2.parameter re_b : second regular expression in sequence
returns : new regular expression
Constructs an alternative (|) of two regular expressions
1.parameter re_a : first regular expression of alternative
2.parameter re_b : second regular expression of alternative
returns : new regular expression
Constructs a regular expression for accepting any singel symbol
returns : regular expression for accepting any singel symbol
Checks if an input matched a regular expression. The function should be called after matches.
Was the sentence used in matches in the language of the regular expression?
-> matches e s == s in L(e)?
1.parameter re : the derived regular expression
returns : empty String if input matched the regular expression, otherwise an error message is returned
Derives a regular expression with respect to a sentence.
1.parameter re : regular expression
2.parameter s : sentence to which the regular expression is applied
returns : the derived regular expression
Checks if a regular expression matches the empty sequence.
nullable e == [] in L(e)
This check indicates if a regular expression fits to a sentence or not.
1.parameter re : regular expression to be checked
returns : true if regular expression matches the empty sequence, otherwise false
Constructs a string representation of a regular expression.
1.parameter re : a regular expression
returns : the string representation of the regular expression