]>
git.saurik.com Git - wxWidgets.git/blob - src/regex/regcustom.h
   2  * Copyright (c) 1998, 1999 Henry Spencer.  All rights reserved. 
   4  * Development of this software was funded, in part, by Cray Research Inc., 
   5  * UUNET Communications Services Inc., Sun Microsystems Inc., and Scriptics 
   6  * Corporation, none of whom are responsible for the results.  The author 
   9  * Redistribution and use in source and binary forms -- with or without 
  10  * modification -- are permitted for any purpose, provided that 
  11  * redistributions in source form retain this entire copyright notice and 
  12  * indicate the origin and nature of any modifications. 
  14  * I'd appreciate being given credit for this package in the documentation 
  15  * of software which uses it, but that is not a requirement. 
  17  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, 
  18  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY 
  19  * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL 
  20  * HENRY SPENCER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
  21  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 
  22  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 
  23  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
  24  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 
  25  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 
  26  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  30 #include "wx/wxchar.h" 
  32 /* overrides for regguts.h definitions, if any */ 
  33 /* regguts only includes standard headers if NULL is not defined, so do it 
  42  * Do not insert extras between the "begin" and "end" lines -- this 
  43  * chunk is automatically extracted to be fitted into regex.h. 
  46 /* ensure certain things don't sneak in from system headers */ 
  50 #ifdef __REG_WIDE_COMPILE 
  51 #undef __REG_WIDE_COMPILE 
  53 #ifdef __REG_WIDE_EXEC 
  54 #undef __REG_WIDE_EXEC 
  72 #   define  __REG_WIDE_T        wxChar 
  73 #   define  __REG_WIDE_COMPILE  re_comp 
  74 #   define  __REG_WIDE_EXEC     re_exec 
  75 #   define  __REG_NOCHAR        /* don't want the char versions */ 
  77 #define __REG_NOFRONT           /* don't want regcomp() and regexec() */ 
  78 #define _ANSI_ARGS_(x)          x 
  81 /* internal character type and related */ 
  82 typedef wxChar chr
;             /* the type itself */ 
  83 typedef int pchr
;               /* what it promotes to */ 
  84 typedef unsigned uchr
;          /* unsigned type that will hold a chr */ 
  85 typedef int celt
;               /* type to hold chr, MCCE number, or NOCELT */ 
  86 #define NOCELT  (-1)            /* celt value which is not valid chr or MCCE */ 
  87 #define UCHAR(c) ((unsigned char) (c)) 
  88 #define CHR(c)  (UCHAR(c))      /* turn char literal into chr literal */ 
  89 #define DIGITVAL(c) ((c)-'0')   /* turn chr digit into its value */ 
  91 #   define CHRBITS 8            /* bits in a chr; must not use sizeof */ 
  92 #   define CHR_MIN 0x00         /* smallest and largest chr; the value */ 
  93 #   define CHR_MAX 0xff         /*  CHR_MAX-CHR_MIN+1 should fit in uchr */ 
  94 #elif SIZEOF_WCHAR_T == 4 
  95 #   define CHRBITS 32           /* bits in a chr; must not use sizeof */ 
  96 #   define CHR_MIN 0x00000000   /* smallest and largest chr; the value */ 
  97 #   define CHR_MAX 0xffffffff   /*  CHR_MAX-CHR_MIN+1 should fit in uchr */ 
  99 #   define CHRBITS 16           /* bits in a chr; must not use sizeof */ 
 100 #   define CHR_MIN 0x0000       /* smallest and largest chr; the value */ 
 101 #   define CHR_MAX 0xffff       /*  CHR_MAX-CHR_MIN+1 should fit in uchr */ 
 105  * I'm using isalpha et al. instead of wxIsalpha since BCC 5.5's iswalpha 
 106  * seems not to work on Windows 9x? Note that these are only used by the 
 107  * lexer, and although they must work for wxChars, they need only return 
 108  * true for characters within the ascii range. 
 110 #define iscalnum(x)     ((wxUChar)(x) < 128 && isalnum(x)) 
 111 #define iscalpha(x)     ((wxUChar)(x) < 128 && isalpha(x)) 
 112 #define iscdigit(x)     ((wxUChar)(x) < 128 && isdigit(x)) 
 113 #define iscspace(x)     ((wxUChar)(x) < 128 && isspace(x)) 
 115 /* name the external functions */ 
 116 #define compile         re_comp 
 119 /* enable/disable debugging code (by whether REG_DEBUG is defined or not) */ 
 120 #if 0           /* no debug unless requested by makefile */ 
 121 #define REG_DEBUG       /* */ 
 124 /* and pick up the standard header */