home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
tolkit45.zip
/
os2tk45
/
h
/
libc
/
regex.h
< prev
next >
Wrap
Text File
|
1999-03-15
|
5KB
|
127 lines
#if __IBMC__ || __IBMCPP__
#pragma info( none )
#ifndef __CHKHDR__
#pragma info( none )
#endif
#pragma info( restore )
#endif
#ifndef __H_REGEX
#define __H_REGEX
#ifdef __cplusplus
extern "C" {
#endif
#ifndef _LNK_CONV
#if __IBMC__ || __IBMCPP__ || defined(_OPTLINK_SUPPORTED)
#define _LNK_CONV _Optlink
#else
#define _LNK_CONV
#endif
#endif
#ifndef _IMPORT
#ifdef __IMPORTLIB__
#define _IMPORT _Import
#else
#define _IMPORT
#endif
#endif
/********************************************************************/
/* <regex.h> header file */
/* */
/* (C) Copyright IBM Corp. 1991, 1995. */
/* - Licensed Material - Program-Property of IBM */
/* - All rights reserved */
/* */
/********************************************************************/
#include <stddef.h>
#define _REG_SUBEXP_MAX 23 /* Maximum # of subexpressions */
#define REG_EXTENDED 0x001 /* Use Extended RE syntax rules */
#define REG_ICASE 0x002 /* Ignore case in match */
#define REG_NOSUB 0x008 /* regexec() not report subexpressions */
#define REG_NEWLINE 0x004 /* Convert <backslash><n> to <newline> */
#define REG_NOTBOL 0x100 /* First character not start of line */
#define REG_NOTEOL 0x200 /* Last character not end of line */
#define REG_NOMATCH 1 /* RE pattern not found */
#define REG_BADPAT 2 /* Invalid Regular Expression */
#define REG_ECOLLATE 3 /* Invalid collating element */
#define REG_ECTYPE 4 /* Invalid character class */
#define REG_EESCAPE 5 /* Last character is \ */
#define REG_ESUBREG 6 /* Invalid number in \digit */
#define REG_EBRACK 7 /* [] imbalance */
#define REG_EPAREN 8 /* \( \) or () imbalance */
#define REG_EBRACE 9 /* \{ \} or { } imbalance */
#define REG_BADBR 10 /* Invalid \{ \} range exp */
#define REG_ERANGE 11 /* Invalid range exp endpoint */
#define REG_ESPACE 12 /* Out of memory */
#define REG_BADRPT 13 /* ?*+ not preceded by valid RE */
#define REG_ECHAR 14 /* invalid multibyte character */
#define REG_EBOL 15 /* ^ anchor and not BOL */
#define REG_EEOL 16 /* $ anchor and not EOL */
/* NOTE: The size of regex_t must not change. The size of the members
* __re_lsub + __re_esub + __re_map + __maxsub + __unsed must be
* exactly 336 bytes, so if _REG_SUBEXP_MAX above changes, you'll
* have to modify __unsed accordingly.
*/
typedef struct { /* regcomp() data saved for regexec() */
size_t re_nsub; /* # of subexpressions in RE pattern */
void *re_comp; /* compiled RE; freed by regfree() */
int re_cflags; /* saved cflags for regexec() */
size_t re_erroff; /* RE pattern error offset */
size_t re_len; /* # wchar_t chars in compiled pattern */
wchar_t re_ucoll[2]; /* min/max unique collating values */
void *re_lsub[_REG_SUBEXP_MAX+1]; /* start subexp */
void *re_esub[_REG_SUBEXP_MAX+1]; /* end subexp */
unsigned char *re_map; /* map of valid pattern characters */
int __maxsub; /* maximum number of subs in pattern. */
void *__unused[34]; /* Extra space if ever needed */
} regex_t;
#ifndef __off_t
typedef long off_t;
#define __off_t
#endif
typedef struct { /* substring locations - from regexec() */
off_t rm_so; /* Byte offset from start of string to */
/* start of substring */
off_t rm_eo; /* Byte offset from start of string of */
/* first character after substring */
} regmatch_t;
extern int _IMPORT _LNK_CONV regcomp(regex_t *preg, const char *pattern, int cflags);
extern int _IMPORT _LNK_CONV regexec(const regex_t *preg, const char *string,
size_t nmatch, regmatch_t pmatch[], int eflags);
extern size_t _IMPORT _LNK_CONV regerror(int errcode, const regex_t *preg,
char *errbuf, size_t errbuf_size);
extern void _IMPORT _LNK_CONV regfree(regex_t *preg);
#ifdef __cplusplus
}
#endif
#endif
#if __IBMC__ || __IBMCPP__
#pragma info( none )
#ifndef __CHKHDR__
#pragma info( restore )
#endif
#pragma info( restore )
#endif