From: Hans Aberg (haberg@math.su.se)
Date: Sun Oct 14 2007 - 02:18:07 CDT
On 14 Oct 2007, at 00:51, Philippe Verdy wrote:
> I don't know why you want to restrict the negation to only a small
> part of
> what they can do.
You can define other operations that the ordinary complement; just
don't all cpmplement, lest peope will become confused.
> My negation operator (like all other regexp operations) IS
> operating as a
> injection from a set of positioned strings=(C*, P) to (C*, P) where
> P is a
> set of positions within strings of C*. It is more general and
> solves the
> particular case of injections from C* to C* (where P is then only a
> singleton based on a particular rule).
You make it complicated: Once the language L(x) has been defined,
just find the longest match in the string that is in the language.
> Note: my engine does not look first for the longest match.
So the there should some oether match in the language.
> Longest matches
> are found by filtering, using customizable rules after each matche
> (whatever
> its size or position) is found. Why?:
>
> Consider an input text coming from a stream A that generates an
> infinite
> suite of characters "a".
> Feed this stream to a filter that will return the longest match for
> the
> regexp "a*". This filter will never return unless it applies the
> technic of
> optimization for the conversion of a final loop into a final
> recursion.
> Now use the same filter but with the regexp "a*b": this time it's
> impossible
> for the filter to return anything.
But the normal thing is that one wants it to eat it all. And if one
wants partial returns, that can be done with a lazy implementation.
It seems me that you are not merely wanting to extend regular
expression, but want to tie that to a particular implementation: your
own.
Hans Åberg
This archive was generated by hypermail 2.1.5 : Sun Oct 14 2007 - 02:19:50 CDT