aboutsummaryrefslogtreecommitdiffstats
path: root/regex.h
diff options
context:
space:
mode:
Diffstat (limited to 'regex.h')
-rw-r--r--regex.h56
1 files changed, 56 insertions, 0 deletions
diff --git a/regex.h b/regex.h
new file mode 100644
index 0000000..702a269
--- /dev/null
+++ b/regex.h
@@ -0,0 +1,56 @@
+#define REGEX_MAX 64
+#define STORAGE_MAX 256
+
+#ifndef NULL
+#define NULL 0
+#endif /* not NULL */
+
+#define RE_NORMAL 0
+#define RE_MATCHMODE 0x07
+#define RE_ANY 0x01
+#define RE_WHICH 0x02
+#define RE_EXCEPT 0x04
+#define RE_ANYTIME 0x08
+#define RE_BEGIN 0x10
+#define RE_END 0x20
+#define RE_IGNCASE 0x40
+#define RE_ENDMARK 0x80
+
+typedef unsigned short longchar;
+
+
+typedef struct {
+
+ longchar *pattern;
+
+ unsigned char mode;
+
+} regexchar;
+
+
+typedef struct {
+
+ regexchar re[REGEX_MAX];
+
+ longchar storage[STORAGE_MAX];
+
+ char *position;
+
+ char *lposition;
+
+} Regex;
+
+
+Regex *newRegex(char *ex, int igncase, Regex * regex, char **error_msg);
+
+int RegexMatch(Regex * re, char *str, int len, int firstp);
+
+void MatchedPosition(Regex * re, char **first, char **last);
+
+
+/* backward compatibility */
+char *regexCompile(char *ex, int igncase);
+
+int regexMatch(char *str, int len, int firstp);
+
+void matchedPosition(char **first, char **last);