Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

updated readme

  • Loading branch information...
commit 893be6c05373caba26e854f5e9776c8828eae871 1 parent 8514585
William Byrd authored
Showing with 3 additions and 1 deletion.
  1. +3 −1 README.md
View
4 README.md
@@ -9,7 +9,7 @@ and
http://matt.might.net/articles/parsing-with-derivatives/
-This repo curently contains five versions of the derivatives code:
+This repo curently contains six versions of the derivatives code:
1. Matt Might's original Scheme code for regular expression matching, from the first blog post above. This code is actually for an acceptor, rather than a parser.
@@ -21,6 +21,8 @@ This repo curently contains five versions of the derivatives code:
5. Asumu Takikawa and Sam Tobin-Hochstadt's greatly cleaned up version of Will Byrd's Super Chobo port of the relational regular expression matcher to Racket.
+6. Will Byrd's relational version of the regular expression matcher, written in miniKanren, and representing the empty set as failure. Given the increased performance and cleaner code, this version will probably become canonical. This version is also a prime candidate for character class constraints for the regex parser.
+
Currently, version 3 should be considered canonical.
The relational matcher can determine whether a "string" (really a sequence of symbols) matches a regular expression. In addition, the matcher can *generate* strings that match a given regex. Also, the matcher can generate strings that *don't* match a given regex (which is pretty cool, actually). Furthermore, the matcher can generate regex that accept a given string, and can generate regex that *don't* match a given string. Of course, the relation also works when all of its arguments are fresh logic variables.
Please sign in to comment.
Something went wrong with that request. Please try again.