Removed all code that uses OpenGL from Image.
[io/quag.git] / addons / Regex / source / IoRegex.h
blobdb45f045fcd77bb4da2e261ad03c4076e9b8cdb9
1 /*
2 docCopyright("Steve Dekorte", 2002)
3 docLicense("BSD revised")
4 */
6 #ifndef IOREGULAREXPRESSION_DEFINED
7 #define IOREGULAREXPRESSION_DEFINED 1
9 #include "IoObject.h"
10 #include "IoSeq.h"
11 #include <pcre.h>
13 #define ISREGULAREXPRESSION(self) IoObject_hasCloneFunc_(self, (IoTagCloneFunc *)IoRegex_rawClone)
15 typedef IoObject IoRegex;
17 typedef struct
19 pcre *re;
20 pcre_extra *pe;
21 int *outputVector;
22 int outputVectorSize;
23 int numberOfCaptures;
24 IoSymbol *pattern;
25 IoSymbol *string;
26 IoMessage *getMatchProtoMessage;
27 IoMessage *cloneMatchMessage;
28 IoMessage *addCaptureRangeMessage;
29 IoObject *currentMatch;
30 int lastIndex;
31 int compileOptions;
32 int execOptions;
33 int matchGroupSize;
34 } IoRegexData;
36 IoRegex *IoRegex_rawClone(IoRegex *self);
37 IoRegex *IoRegex_proto(void *state);
38 IoRegex *IoRegex_new(void *state);
40 void IoRegex_free(IoRegex *self);
41 void IoRegex_mark(IoRegex *self);
43 /* ----------------------------------------------------------- */
44 IoObject *IoRegex_setPattern(IoRegex *self, IoObject *locals, IoMessage *m);
45 void IoRegex_justUpdatePattern(IoRegex *self, IoMessage *m);
46 IoObject *IoRegex_pattern(IoRegex *self, IoObject *locals, IoMessage *m);
48 IoObject *IoRegex_setString(IoRegex *self, IoObject *locals, IoMessage *m);
49 IoObject *IoRegex_string(IoRegex *self, IoObject *locals, IoMessage *m);
51 IoObject *IoRegex_nextMatch(IoRegex *self, IoObject *locals, IoMessage *m);
52 IoObject *IoRegex_currentMatch(IoRegex *self, IoObject *locals, IoMessage *m);
53 IoObject *IoRegex_resetSearch(IoRegex *self, IoObject *locals, IoMessage *m);
54 IoObject *IoRegex_numberOfCaptures(IoRegex *self, IoObject *locals, IoMessage *m);
56 IoObject *IoRegex_version(IoRegex *self, IoObject *locals, IoMessage *m);
58 /* --- compileOptions ----------------------------------- */
60 IoObject *IoRegex_isCaseInsensitive(IoRegex *self, IoObject *locals, IoMessage *m);
61 IoRegex *IoRegex_setIsCaseInsensitive(IoRegex *self, IoObject *locals, IoMessage *m);
63 IoObject *IoRegex_isDollarEndOnly(IoRegex *self, IoObject *locals, IoMessage *m);
64 IoRegex *IoRegex_setIsDollarEndOnly(IoRegex *self, IoObject *locals, IoMessage *m);
66 IoObject *IoRegex_isDotAll(IoRegex *self, IoObject *locals, IoMessage *m);
67 IoRegex *IoRegex_setIsDotAll(IoRegex *self, IoObject *locals, IoMessage *m);
69 IoObject *IoRegex_isExtended(IoRegex *self, IoObject *locals, IoMessage *m);
70 IoRegex *IoRegex_setIsExtended(IoRegex *self, IoObject *locals, IoMessage *m);
72 IoObject *IoRegex_isMultiline(IoRegex *self, IoObject *locals, IoMessage *m);
73 IoRegex *IoRegex_setIsMultiline(IoRegex *self, IoObject *locals, IoMessage *m);
75 IoObject *IoRegex_isGreedy(IoRegex *self, IoObject *locals, IoMessage *m);
76 IoRegex *IoRegex_setIsGreedy(IoRegex *self, IoObject *locals, IoMessage *m);
78 IoObject *IoRegex_isUTF8(IoRegex *self, IoObject *locals, IoMessage *m);
79 IoRegex *IoRegex_setIsUTF8(IoRegex *self, IoObject *locals, IoMessage *m);
81 /* --- execOptions ----------------------------------- */
83 IoObject *IoRegex_canMatchEmpty(IoRegex *self, IoObject *locals, IoMessage *m);
84 IoRegex *IoRegex_setCanMatchEmpty(IoRegex *self, IoObject *locals, IoMessage *m);
86 #endif