[Python-Dev] sre.c and sre_match()

Tim Peters tim_one@email.msn.com
Tue, 15 Apr 2003 23:22:42 -0400


[Jack Diederich]
> I can't find sre_match() anywhere in the source

It's in _sre.c, here:

LOCAL(int)
SRE_MATCH(SRE_STATE* state, SRE_CODE* pattern, int level)

SRE_MATCH is a macro, and expands to either sre_match or sre_umatch,
depending on whether Unicode support is enabled.  Note that _sre.c arranges
to compile itself *twice*, via its

#define SRE_RECURSIVE
#include "_sre.c"
#undef SRE_RECURSIVE

This is to get both 8-bit and Unicode versions of the basic routines when
Unicode support is enabled.

> and it doesn't have a man page.

Heh.  Does *any* Python source code have a man page <wink>?

> ...
> I was actually poking around to see how hard it would be to allow
> pure-python string classes to work with the re modules.

Sorry, no idea.  Note that sre works on any object supporting the ill-fated
buffer interface.  You may have a hard time figuring out that too.  But,
e.g., it implies that re can search directly over an mmap'ed file (you don't
need to read the file into a string first).