Reply to Jarrett,

On Tue, Feb 17, 2009 at 2:47 PM, Daniel de Kok <m...@danieldk.org>
wrote:

Actually, I was wondering why nobody is considering real regular
languages anymore, that can be compiled to a normal finite state
recognizer or transducer. While this may not be as fancy as Perl-like
extensions, they are much faster, and it's easier to do fun stuff
such as composition.

Tango's regex engine is just that.  It uses a tagged NFA method.
http://www.dsource.org/projects/tango/docs/current/tango.text.Regex.ht
ml

The problem with this method is that while it's certainly faster to
match, it's MUCH slower to compile.  There are no pathological
matches; only pathological compiles ;)  I'm talking 60-70 seconds to
compile a more complex regex.

could this be transitioned to CTFE? you could even have a debug mode that delays till runtime

RegEx mather = new CTFERegEx!("some regex");


class CTFERegEx(char[] regex) : RegEx
{
      debug(NoCTFE)  static char[] done;
      else     static const char[] done = CTFECompile(regex);

      public this()
      {
         debug(NoCTFE) if(done == null) done = CTFECompile(regex);

         base(done)
      }
}


Reply via email to