diff options
author | Jeremy Hylton <jeremy@alum.mit.edu> | 2000-06-01 17:39:12 (GMT) |
---|---|---|
committer | Jeremy Hylton <jeremy@alum.mit.edu> | 2000-06-01 17:39:12 (GMT) |
commit | b1aa19515ffdb84c6633ee0344196fd8bd50ade0 (patch) | |
tree | 457a1072b56a4981029f80032681a31fd5f29ef7 /Modules/sre.h | |
parent | 0292d78e91eafbd9946323db845acc59dfac6ff6 (diff) | |
download | cpython-b1aa19515ffdb84c6633ee0344196fd8bd50ade0.zip cpython-b1aa19515ffdb84c6633ee0344196fd8bd50ade0.tar.gz cpython-b1aa19515ffdb84c6633ee0344196fd8bd50ade0.tar.bz2 |
Fredrik Lundh: here's the 96.6% version of SRE
Diffstat (limited to 'Modules/sre.h')
-rw-r--r-- | Modules/sre.h | 34 |
1 files changed, 29 insertions, 5 deletions
diff --git a/Modules/sre.h b/Modules/sre.h index 2936b05..3664c9d 100644 --- a/Modules/sre.h +++ b/Modules/sre.h @@ -14,17 +14,18 @@ #include "sre_constants.h" -/* Python objects */ - typedef struct { PyObject_HEAD PyObject* code; /* link to the code string object */ - PyObject* pattern; /* link to the pattern source (or None) */ int groups; PyObject* groupindex; + /* compatibility */ + PyObject* pattern; /* pattern source (or None) */ + int flags; /* flags used when compiling pattern source */ } PatternObject; -#define PatternObject_GetCode(o) ((void*) PyString_AS_STRING((o)->code)) +#define PatternObject_GetCode(o)\ + ((void*) PyString_AS_STRING(((PatternObject*)(o))->code)) typedef struct { PyObject_HEAD @@ -34,5 +35,28 @@ typedef struct { int mark[2]; } MatchObject; -#endif +typedef struct { + /* string pointers */ + void* ptr; /* current position (also end of current slice) */ + void* beginning; /* start of original string */ + void* start; /* start of current slice */ + void* end; /* end of original string */ + /* character size */ + int charsize; + /* registers */ + int marks; + void* mark[64]; /* FIXME: <fl> should be dynamically allocated! */ + /* backtracking stack */ + void** stack; + int stacksize; + int stackbase; +} SRE_STATE; +typedef struct { + PyObject_HEAD + PyObject* pattern; + PyObject* string; + SRE_STATE state; +} CursorObject; + +#endif |