Annotation of embedaddon/php/ext/mbstring/oniguruma/onigposix.h, revision 1.1.1.1

1.1       misho       1: #ifndef ONIGPOSIX_H
                      2: #define ONIGPOSIX_H
                      3: /**********************************************************************
                      4:   onigposix.h - Oniguruma (regular expression library)
                      5: **********************************************************************/
                      6: /*-
                      7:  * Copyright (c) 2002-2005  K.Kosako  <sndgk393 AT ybb DOT ne DOT jp>
                      8:  * All rights reserved.
                      9:  *
                     10:  * Redistribution and use in source and binary forms, with or without
                     11:  * modification, are permitted provided that the following conditions
                     12:  * are met:
                     13:  * 1. Redistributions of source code must retain the above copyright
                     14:  *    notice, this list of conditions and the following disclaimer.
                     15:  * 2. Redistributions in binary form must reproduce the above copyright
                     16:  *    notice, this list of conditions and the following disclaimer in the
                     17:  *    documentation and/or other materials provided with the distribution.
                     18:  *
                     19:  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
                     20:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
                     21:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
                     22:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
                     23:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
                     24:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
                     25:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
                     26:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
                     27:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
                     28:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
                     29:  * SUCH DAMAGE.
                     30:  */
                     31: #include <stdlib.h>
                     32: 
                     33: #ifdef __cplusplus
                     34: extern "C" {
                     35: #endif
                     36: 
                     37: /* options */
                     38: #define REG_ICASE          (1<<0)
                     39: #define REG_NEWLINE        (1<<1)
                     40: #define REG_NOTBOL         (1<<2)
                     41: #define REG_NOTEOL         (1<<3)
                     42: #define REG_EXTENDED       (1<<4) /* if not setted, Basic Onigular Expression */
                     43: #define REG_NOSUB          (1<<5)
                     44: 
                     45: /* POSIX error codes */
                     46: #define REG_NOMATCH          1
                     47: #define REG_BADPAT           2
                     48: #define REG_ECOLLATE         3
                     49: #define REG_ECTYPE           4
                     50: #define REG_EESCAPE          5
                     51: #define REG_ESUBREG          6
                     52: #define REG_EBRACK           7
                     53: #define REG_EPAREN           8
                     54: #define REG_EBRACE           9
                     55: #define REG_BADBR           10
                     56: #define REG_ERANGE          11
                     57: #define REG_ESPACE          12
                     58: #define REG_BADRPT          13
                     59: 
                     60: /* extended error codes */
                     61: #define REG_EONIG_INTERNAL  14
                     62: #define REG_EONIG_BADWC     15
                     63: #define REG_EONIG_BADARG    16
                     64: #define REG_EONIG_THREAD    17
                     65: 
                     66: /* character encodings (for reg_set_encoding()) */
                     67: #define REG_POSIX_ENCODING_ASCII     0
                     68: #define REG_POSIX_ENCODING_EUC_JP    1
                     69: #define REG_POSIX_ENCODING_SJIS      2
                     70: #define REG_POSIX_ENCODING_UTF8      3
                     71: #define REG_POSIX_ENCODING_UTF16_BE  4
                     72: #define REG_POSIX_ENCODING_UTF16_LE  5
                     73: 
                     74: 
                     75: typedef int regoff_t;
                     76: 
                     77: typedef struct {
                     78:   regoff_t  rm_so;
                     79:   regoff_t  rm_eo;
                     80: } regmatch_t;
                     81: 
                     82: /* POSIX regex_t */
                     83: typedef struct {
                     84:   void*   onig;          /* Oniguruma regex_t*  */
                     85:   size_t  re_nsub;
                     86:   int     comp_options;
                     87: } regex_t;
                     88: 
                     89: 
                     90: #ifndef P_
                     91: #if defined(__STDC__) || defined(_WIN32)
                     92: # define P_(args) args
                     93: #else
                     94: # define P_(args) ()
                     95: #endif
                     96: #endif
                     97: 
                     98: #ifndef ONIG_EXTERN
                     99: #if defined(_WIN32) && !defined(__GNUC__)
                    100: #if defined(EXPORT) || defined(RUBY_EXPORT)
                    101: #define ONIG_EXTERN   extern __declspec(dllexport)
                    102: #else
                    103: #define ONIG_EXTERN   extern __declspec(dllimport)
                    104: #endif
                    105: #endif
                    106: #endif
                    107: 
                    108: #ifndef ONIG_EXTERN
                    109: #define ONIG_EXTERN   extern
                    110: #endif
                    111: 
                    112: #ifndef ONIGURUMA_H
                    113: typedef unsigned int        OnigOptionType;
                    114: 
                    115: /* syntax */
                    116: typedef struct {
                    117:   unsigned int op;
                    118:   unsigned int op2;
                    119:   unsigned int behavior;
                    120:   OnigOptionType options;    /* default option */
                    121: } OnigSyntaxType;
                    122: 
                    123: ONIG_EXTERN OnigSyntaxType OnigSyntaxPosixBasic;
                    124: ONIG_EXTERN OnigSyntaxType OnigSyntaxPosixExtended;
                    125: ONIG_EXTERN OnigSyntaxType OnigSyntaxEmacs;
                    126: ONIG_EXTERN OnigSyntaxType OnigSyntaxGrep;
                    127: ONIG_EXTERN OnigSyntaxType OnigSyntaxGnuRegex;
                    128: ONIG_EXTERN OnigSyntaxType OnigSyntaxJava;
                    129: ONIG_EXTERN OnigSyntaxType OnigSyntaxPerl;
                    130: ONIG_EXTERN OnigSyntaxType OnigSyntaxRuby;
                    131: 
                    132: /* predefined syntaxes (see regsyntax.c) */
                    133: #define ONIG_SYNTAX_POSIX_BASIC        (&OnigSyntaxPosixBasic)
                    134: #define ONIG_SYNTAX_POSIX_EXTENDED     (&OnigSyntaxPosixExtended)
                    135: #define ONIG_SYNTAX_EMACS              (&OnigSyntaxEmacs)
                    136: #define ONIG_SYNTAX_GREP               (&OnigSyntaxGrep)
                    137: #define ONIG_SYNTAX_GNU_REGEX          (&OnigSyntaxGnuRegex)
                    138: #define ONIG_SYNTAX_JAVA               (&OnigSyntaxJava)
                    139: #define ONIG_SYNTAX_PERL               (&OnigSyntaxPerl)
                    140: #define ONIG_SYNTAX_RUBY               (&OnigSyntaxRuby)
                    141: /* default syntax */
                    142: #define ONIG_SYNTAX_DEFAULT             OnigDefaultSyntax
                    143: 
                    144: ONIG_EXTERN OnigSyntaxType*  OnigDefaultSyntax;
                    145: 
                    146: ONIG_EXTERN int  onig_set_default_syntax P_((OnigSyntaxType* syntax));
                    147: ONIG_EXTERN void onig_copy_syntax P_((OnigSyntaxType* to, OnigSyntaxType* from));
                    148: ONIG_EXTERN const char* onig_version P_((void));
                    149: ONIG_EXTERN const char* onig_copyright P_((void));
                    150: 
                    151: #endif /* ONIGURUMA_H */
                    152: 
                    153: 
                    154: ONIG_EXTERN int    regcomp P_((regex_t* reg, const char* pat, int options));
                    155: ONIG_EXTERN int    regexec P_((regex_t* reg, const char* str, size_t nmatch, regmatch_t* matches, int options));
                    156: ONIG_EXTERN void   regfree P_((regex_t* reg));
                    157: ONIG_EXTERN size_t regerror P_((int code, const regex_t* reg, char* buf, size_t size));
                    158: 
                    159: /* extended API */
                    160: ONIG_EXTERN void reg_set_encoding P_((int enc));
                    161: ONIG_EXTERN int  reg_name_to_group_numbers P_((regex_t* reg, const unsigned char* name, const unsigned char* name_end, int** nums));
                    162: ONIG_EXTERN int  reg_foreach_name P_((regex_t* reg, int (*func)(const unsigned char*, const unsigned char*,int,int*,regex_t*,void*), void* arg));
                    163: ONIG_EXTERN int  reg_number_of_names P_((regex_t* reg));
                    164: 
                    165: #ifdef __cplusplus
                    166: }
                    167: #endif
                    168: 
                    169: #endif /* ONIGPOSIX_H */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>