/**************************************************************************** * include/regex.h * * regex.h - TRE POSIX compatible regex compilation functions. * * Copyright (c) 2001-2009 Ville Laurikari * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ****************************************************************************/ #ifndef _INCLUDE_REGEX_H #define _INCLUDE_REGEX_H /**************************************************************************** * Included Files ****************************************************************************/ #include #define regoff_t int typedef struct re_pattern_buffer { size_t re_nsub; void *__opaque; void *__padding[4]; size_t __nsub2; char __padding2; } regex_t; typedef struct { regoff_t rm_so; regoff_t rm_eo; } regmatch_t; #define RE_DUP_MAX 255 #define REG_EXTENDED 1 #define REG_ICASE 2 #define REG_NEWLINE 4 #define REG_NOSUB 8 #define REG_NOTBOL 1 #define REG_NOTEOL 2 #define REG_OK 0 #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 #define REG_ENOSYS -1 #ifdef __cplusplus extern "C" { #endif int regcomp(regex_t *__restrict, const char *__restrict, int); int regexec(const regex_t * __restrict, const char *__restrict, size_t, regmatch_t *__restrict, int); void regfree(regex_t *); size_t regerror(int, const regex_t *__restrict, char *__restrict, size_t); #ifdef __cplusplus } #endif #endif /* _INCLUDE_REGEX_H */