summaryrefslogtreecommitdiffstats
path: root/Modules/sre.h
diff options
context:
space:
mode:
authorFredrik Lundh <fredrik@pythonware.com>2000-06-29 08:55:54 (GMT)
committerFredrik Lundh <fredrik@pythonware.com>2000-06-29 08:55:54 (GMT)
commit102f3ad676be1ef18fd9185b0dfb6c2796a6f8ac (patch)
treedb85110d2b4959c12c79f8dc160008f4ac00bcd8 /Modules/sre.h
parent3de16f3db4ae7e557719bbc8694598f348f89247 (diff)
downloadcpython-102f3ad676be1ef18fd9185b0dfb6c2796a6f8ac.zip
cpython-102f3ad676be1ef18fd9185b0dfb6c2796a6f8ac.tar.gz
cpython-102f3ad676be1ef18fd9185b0dfb6c2796a6f8ac.tar.bz2
towards 1.6b1
Diffstat (limited to 'Modules/sre.h')
-rw-r--r--Modules/sre.h18
1 files changed, 16 insertions, 2 deletions
diff --git a/Modules/sre.h b/Modules/sre.h
index 3664c9d..a5f0aeb 100644
--- a/Modules/sre.h
+++ b/Modules/sre.h
@@ -14,6 +14,9 @@
#include "sre_constants.h"
+/* size of a code word (must be unsigned short or larger) */
+#define SRE_CODE unsigned short
+
typedef struct {
PyObject_HEAD
PyObject* code; /* link to the code string object */
@@ -35,6 +38,14 @@ typedef struct {
int mark[2];
} MatchObject;
+typedef unsigned int (*SRE_TOLOWER_HOOK)(unsigned int ch);
+
+typedef struct {
+ /* stack elements */
+ SRE_CODE* pattern;
+ void* ptr;
+} SRE_STACK;
+
typedef struct {
/* string pointers */
void* ptr; /* current position (also end of current slice) */
@@ -44,15 +55,18 @@ typedef struct {
/* character size */
int charsize;
/* registers */
- int marks;
+ int lastmark;
void* mark[64]; /* FIXME: <fl> should be dynamically allocated! */
/* backtracking stack */
- void** stack;
+ SRE_STACK* stack;
int stacksize;
int stackbase;
+ /* hooks */
+ SRE_TOLOWER_HOOK tolower;
} SRE_STATE;
typedef struct {
+ /* search helper */
PyObject_HEAD
PyObject* pattern;
PyObject* string;