Would there be interest in a SERIOUS compile-time regex parser?
Bruno Medeiros
brunodomedeiros+spam at com.gmail
Thu Oct 26 13:29:14 PDT 2006
Don Clugston wrote:
> Bruno Medeiros wrote:
>> Don Clugston wrote:
>>>
>>> It would behave *exactly* like the existing std.regexp, except that
>>> compilation into the internal form would happen via template
>>> metaprogramming, so that
>>> (1) all errors would be caught at compile time, and
>>> (2) there'd be a minor speedup because the compilation step would not
>>> happen at runtime, and
>>> (3) otherwise it wouldn't be any faster than the existing regexp.
>>> However, there'd be no template code bloat, either.
>>>
>>
>> Whoa, "internal form" and "bytecoded program"? Out of curiosity, for
>> those ignorant on the matter, like me, what kind of processing is done
>> when creating a regexp, in terms of this internal form you speak of?
>> Is it converted to a simple internal form, or something more complex?
>> Bytecoded program seems pretty complex stuff, especially for a regexp
>> (isn't the translation direct) ?
>
> It's *nowhere near* as complicated as it sounds. If you look into the
> source of std.regexp, you'll see what I mean -- there's a function
> called 'compile'.
From my quick look, it is a simpler representation of the regexp
string, but it still a linear (opcode) representation. It is not a graph
state like I'd expect (and like benji said). (one is used/created later?
I couldn't tell from std.regexp.test() )
--
Bruno Medeiros - MSc in CS/E student
http://www.prowiki.org/wiki4d/wiki.cgi?BrunoMedeiros#D
More information about the Digitalmars-d
mailing list