summaryrefslogtreecommitdiff
path: root/ext/mbstring/oniguruma/onigposix.h
diff options
context:
space:
mode:
Diffstat (limited to 'ext/mbstring/oniguruma/onigposix.h')
-rw-r--r--ext/mbstring/oniguruma/onigposix.h135
1 files changed, 135 insertions, 0 deletions
diff --git a/ext/mbstring/oniguruma/onigposix.h b/ext/mbstring/oniguruma/onigposix.h
new file mode 100644
index 0000000000..ea93c6f9f7
--- /dev/null
+++ b/ext/mbstring/oniguruma/onigposix.h
@@ -0,0 +1,135 @@
+/**********************************************************************
+
+ onigposix.h - Oniguruma (regular expression library)
+
+ Copyright (C) 2003 K.Kosako (kosako@sofnec.co.jp)
+
+**********************************************************************/
+#ifndef ONIGPOSIX_H
+#define ONIGPOSIX_H
+
+/* options */
+#define REG_ICASE (1<<0)
+#define REG_NEWLINE (1<<1)
+#define REG_NOTBOL (1<<2)
+#define REG_NOTEOL (1<<3)
+#define REG_EXTENDED (1<<4) /* if not setted, Basic Regular Expression */
+#define REG_NOSUB (1<<5)
+
+/* POSIX error codes */
+#define REG_NOMATCH 1
+#define REG_BADPAT 2
+#define REG_ECOLLATE 3
+#define REG_ECTYPE 4
+#define REG_EESCAPE 5
+#define REG_ESUBREG 6
+#define REG_EBRACK 7
+#define REG_EPAREN 8
+#define REG_EBRACE 9
+#define REG_BADBR 10
+#define REG_ERANGE 11
+#define REG_ESPACE 12
+#define REG_BADRPT 13
+
+/* extended error codes */
+#define REG_EONIG_INTERNAL 14
+#define REG_EONIG_BADWC 15
+#define REG_EONIG_BADARG 16
+#define REG_EONIG_THREAD 17
+
+/* character encodings (for reg_set_encoding()) */
+/* These value must be same with MBCTYPE_XXXX in oniguruma.h.*/
+#define REG_ENCODING_ASCII 0
+#define REG_ENCODING_EUC_JP 1
+#define REG_ENCODING_SJIS 2
+#define REG_ENCODING_UTF8 3
+
+#include <stdlib.h>
+
+
+typedef int regoff_t;
+
+typedef struct {
+ regoff_t rm_so;
+ regoff_t rm_eo;
+} regmatch_t;
+
+/* POSIX regex_t */
+typedef struct {
+ void* onig; /* Oniguruma regex_t* */
+ size_t re_nsub;
+ int comp_options;
+} regex_t;
+
+
+#ifndef P_
+#ifdef __STDC__
+# define P_(args) args
+#else
+# define P_(args) ()
+#endif
+#endif
+
+#ifndef REG_EXTERN
+#if defined(_WIN32) && !defined(__CYGWIN__)
+#if defined(EXPORT) || defined(RUBY_EXPORT)
+#define REG_EXTERN extern __declspec(dllexport)
+#elif defined(IMPORT)
+#define REG_EXTERN extern __declspec(dllimport)
+#endif
+#endif
+#endif
+
+#ifndef REG_EXTERN
+#define REG_EXTERN extern
+#endif
+
+#ifndef ONIGURUMA_H
+typedef unsigned int RegOptionType;
+
+/* syntax */
+typedef struct {
+ unsigned int op;
+ unsigned int op2;
+ unsigned int behavior;
+ RegOptionType options; /* default option */
+} RegSyntaxType;
+
+REG_EXTERN RegSyntaxType RegSyntaxPosixBasic;
+REG_EXTERN RegSyntaxType RegSyntaxPosixExtended;
+REG_EXTERN RegSyntaxType RegSyntaxEmacs;
+REG_EXTERN RegSyntaxType RegSyntaxGrep;
+REG_EXTERN RegSyntaxType RegSyntaxGnuRegex;
+REG_EXTERN RegSyntaxType RegSyntaxJava;
+REG_EXTERN RegSyntaxType RegSyntaxPerl;
+REG_EXTERN RegSyntaxType RegSyntaxRuby;
+
+/* predefined syntaxes (see regcomp.c) */
+#define REG_SYNTAX_POSIX_BASIC (&RegSyntaxPosixBasic)
+#define REG_SYNTAX_POSIX_EXTENDED (&RegSyntaxPosixExtended)
+#define REG_SYNTAX_EMACS (&RegSyntaxEmacs)
+#define REG_SYNTAX_GREP (&RegSyntaxGrep)
+#define REG_SYNTAX_GNU_REGEX (&RegSyntaxGnuRegex)
+#define REG_SYNTAX_JAVA (&RegSyntaxJava)
+#define REG_SYNTAX_PERL (&RegSyntaxPerl)
+#define REG_SYNTAX_RUBY (&RegSyntaxRuby)
+/* default syntax */
+#define REG_SYNTAX_DEFAULT RegDefaultSyntax
+
+REG_EXTERN RegSyntaxType* RegDefaultSyntax;
+
+REG_EXTERN int regex_set_default_syntax P_((RegSyntaxType* syntax));
+#endif /* ONIGURUMA_H */
+
+
+REG_EXTERN int regcomp P_((regex_t* reg, const char* pat, int options));
+REG_EXTERN int regexec P_((regex_t* reg, const char* str, size_t nmatch, regmatch_t* matches, int options));
+REG_EXTERN void regfree P_((regex_t* reg));
+REG_EXTERN size_t regerror P_((int code, const regex_t* reg, char* buf, size_t size));
+
+/* extended API */
+REG_EXTERN void reg_set_encoding P_((int enc));
+REG_EXTERN int reg_name_to_group_numbers P_((regex_t* reg, unsigned char* name, unsigned char* name_end, int** nums));
+REG_EXTERN int reg_foreach_name P_((regex_t* reg, int (*func)(unsigned char*,int,int*,void*), void* arg));
+
+#endif /* ONIGPOSIX_H */