Hi Michel,
Michel Schinz <Michel.Schinz@epfl.ch> wrote:
> > can anybody help me with this? Why does using tmprx result in an
> > error, but using tmp2rx works?
>
> To me, this looks like a bug, maybe in simplify-regexp, see below.
> Some comments on what you wrote, before.
Ah, I'm glad (or maybe not?) to hear that. Thank you very much for
your helpful comments and diagnostics.
> I would suggest that you use the ADT creation functions to create what
> you want. Something like this:
>
> (re-choice (map (lambda (s) (make-re-submatch (re-string s)))
> '("yes" "no")))
>
> This doesn't need any regexp matching nothing.
That looks good to me, thank you for pointing me to this possibility.
> I find it a little strange that you want each alternative to be
> included in a separate submatch, though. Are you sure that you do not
> want to include the whole "or" part in a submatch? If this is the
> case, you should use the following instead:
>
> ----------------------------------------------------------------------
> > (make-re-submatch (re-choice (map re-string '("yes" "no"))))
> '#{Re-submatch}
> > (regexp->sre ##)
> '(submatch (| "yes" "no"))
> ----------------------------------------------------------------------
Yes, you are right. I guess finding the right submatch in my solution
would have been very difficult and cumbersome. Your solution is far
more easier.
Thanks again, and thanks to Martin for forwarding this to me, after I
messed up my scsh-users subscription.
Cheers,
--
Andreas.
pgpauCX6CkRoz.pgp
Description: PGP signature
|