= The RegExp Library
:Author: John Reppy
:Date: {release-date}
:stem: latexmath
:source-highlighter: pygments
:VERSION: {smlnj-version}

== Overview

The *RegExp Library* ...

== Contents

xref:tutorial.adoc[Using the *RegExp Library*]::
  A tutorial guide to using this library.

xref:sig-REGEXP_PARSER.adoc[`[.kw]#signature# REGEXP_PARSER`]::
  Defines the interface to a parser for a concrete
  regular-expression syntax.

xref:sig-REGEXP_ENGINE.adoc[`[.kw]#signature# REGEXP_ENGINE`]::
  Defines the interface to a regular-expression search engine.

xref:str-RegExpSyntax.adoc[`[.kw]#structure# RegExpSyntax`]::
  Defines the abstract syntax of regular expressions.

xref:str-MatchTree.adoc[`[.kw]#structure# MatchTree`]::
  Provides a tree-structured representation
  of the result of a successful regular expression match.

xref:str-AwkSyntax.adoc[`[.kw]#structure# AwkSyntax`]::
  A parser for the regular-expression syntax defined by the AWK language.

xref:sig-REGEXP_ENGINE.adoc#str:BackTrackEngine[`[.kw]#structure# BackTrackEngine`]::
  A regular-expression search engine implemented as a back-tracking
  interpreter.

xref:sig-REGEXP_ENGINE.adoc#str:DfaEngine[`[.kw]#structure# DfaEngine`]::
  A regular-expression search engine implemented as a deterministic
  finite automata.

xref:sig-REGEXP_ENGINE.adoc#str:ThompsonEngine[`[.kw]#structure# ThompsonEngine`]::
  A regular-expression search engine based on Ken Thompson's design.

xref:fun-RegExpFn.adoc[`[.kw]#functor# RegExpFn`]::
  Provides a functor for combining a regular-expression parser with an engine to
  form a complete implementation of an regular-expression search module.

== Usage

For https://smlnj.org[*SML/NJ*], include `$/regexp-lib.cm` in your
*CM* file.

For use in https://www.mlton.org/[*MLton*], include
`$(SML_LIB)/smlnj-lib/RegExp/regexp-lib.mlb` in your *MLB* file.

ifdef::backend-pdf[]

// Push titles down one level.
:leveloffset: 1

include::tutorial.adoc[]

include::sig-REGEXP_PARSER.adoc[]

include::sig-REGEXP_ENGINE.adoc[]

include::str-RegExpSyntax.adoc[]

include::str-MatchTree.adoc[]

include::str-AwkSyntax.adoc[]

include::fun-RegExpFn.adoc[]

// Return to normal title levels.
:leveloffset: 0

endif::[]
