Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Postgres FD Implementation
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Abuhujair Javed
Postgres FD Implementation
Commits
ca405ae4
Commit
ca405ae4
authored
Aug 28, 1996
by
Marc G. Fournier
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Moved the include files to src/include/regex
parent
5c0d6ccd
Changes
11
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
9 additions
and
775 deletions
+9
-775
src/backend/regex/cclass.h
src/backend/regex/cclass.h
+0
-70
src/backend/regex/cdefs.h
src/backend/regex/cdefs.h
+0
-144
src/backend/regex/cname.h
src/backend/regex/cname.h
+0
-141
src/backend/regex/regcomp.c
src/backend/regex/regcomp.c
+4
-4
src/backend/regex/regerror.c
src/backend/regex/regerror.c
+1
-1
src/backend/regex/regex.h
src/backend/regex/regex.h
+0
-108
src/backend/regex/regex2.h
src/backend/regex/regex2.h
+0
-175
src/backend/regex/regexec.c
src/backend/regex/regexec.c
+2
-2
src/backend/regex/regexp.h
src/backend/regex/regexp.h
+0
-71
src/backend/regex/regfree.c
src/backend/regex/regfree.c
+2
-2
src/backend/regex/utils.h
src/backend/regex/utils.h
+0
-57
No files found.
src/backend/regex/cclass.h
deleted
100644 → 0
View file @
5c0d6ccd
/*-
* Copyright (c) 1992, 1993, 1994 Henry Spencer.
* Copyright (c) 1992, 1993, 1994
* The Regents of the University of California. All rights reserved.
*
* This code is derived from software contributed to Berkeley by
* Henry Spencer.
*
* 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.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
*
* @(#)cclass.h 8.3 (Berkeley) 3/20/94
*/
/* character-class table */
static
struct
cclass
{
char
*
name
;
char
*
chars
;
char
*
multis
;
}
cclasses
[]
=
{
{
"alnum"
,
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\
0123456789"
,
""
},
{
"alpha"
,
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
,
""
},
{
"blank"
,
"
\t
"
,
""
},
{
"cntrl"
,
"
\007\b\t\n\v\f\r\1\2\3\4\5\6\16\17\20\21\22\23\24
\
\25\26\27\30\31\32\33\34\35\36\37\177
"
,
""
},
{
"digit"
,
"0123456789"
,
""
},
{
"graph"
,
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\
0123456789!
\"
#$%&'()*+,-./:;<=>?@[
\\
]^_`{|}~"
,
""
},
{
"lower"
,
"abcdefghijklmnopqrstuvwxyz"
,
""
},
{
"print"
,
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\
0123456789!
\"
#$%&'()*+,-./:;<=>?@[
\\
]^_`{|}~ "
,
""
},
{
"punct"
,
"!
\"
#$%&'()*+,-./:;<=>?@[
\\
]^_`{|}~"
,
""
},
{
"space"
,
"
\t\n\v\f\r
"
,
""
},
{
"upper"
,
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
,
""
},
{
"xdigit"
,
"0123456789ABCDEFabcdef"
,
""
},
{
NULL
,
0
,
""
}
};
src/backend/regex/cdefs.h
deleted
100644 → 0
View file @
5c0d6ccd
/*
* ++Copyright++ 1991, 1993
* -
* Copyright (c) 1991, 1993
* The Regents of the University of California. 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.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
* -
* Portions Copyright (c) 1993 by Digital Equipment Corporation.
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies, and that
* the name of Digital Equipment Corporation not be used in advertising or
* publicity pertaining to distribution of the document or software without
* specific, written prior permission.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT
* CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
* ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
* SOFTWARE.
* -
* --Copyright--
*/
/*
* @(#)cdefs.h 8.1 (Berkeley) 6/2/93
* $Id: cdefs.h,v 1.1.1.1 1996/07/09 06:21:49 scrappy Exp $
*/
#ifndef _CDEFS_H_
#define _CDEFS_H_
#if defined(__cplusplus)
#define __BEGIN_DECLS extern "C" {
#define __END_DECLS };
#else
#define __BEGIN_DECLS
#define __END_DECLS
#endif
/*
* The __CONCAT macro is used to concatenate parts of symbol names, e.g.
* with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
* The __CONCAT macro is a bit tricky -- make sure you don't put spaces
* in between its arguments. __CONCAT can also concatenate double-quoted
* strings produced by the __STRING macro, but this only works with ANSI C.
*/
#if defined(__STDC__) || defined(__cplusplus)
#define __P(protos) protos
/* full-blown ANSI C */
#define __CONCAT(x,y) x ## y
#define __STRING(x) #x
#define __const const
/* define reserved names to standard */
#define __signed signed
#define __volatile volatile
#if defined(__cplusplus)
#define __inline inline
/* convert to C++ keyword */
#else
#ifndef __GNUC__
#define __inline
/* delete GCC keyword */
#endif
/* !__GNUC__ */
#endif
/* !__cplusplus */
#else
/* !(__STDC__ || __cplusplus) */
#define __P(protos) ()
/* traditional C preprocessor */
#define __CONCAT(x,y) x
/**/
y
#define __STRING(x) "x"
#ifndef __GNUC__
#define __const
/* delete pseudo-ANSI C keywords */
#define __inline
#define __signed
#define __volatile
/*
* In non-ANSI C environments, new programs will want ANSI-only C keywords
* deleted from the program and old programs will want them left alone.
* When using a compiler other than gcc, programs using the ANSI C keywords
* const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
* When using "gcc -traditional", we assume that this is the intent; if
* __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
*/
#ifndef NO_ANSI_KEYWORDS
#define const
/* delete ANSI C keywords */
#define inline
#define signed
#define volatile
#endif
#endif
/* !__GNUC__ */
#endif
/* !(__STDC__ || __cplusplus) */
/*
* GCC1 and some versions of GCC2 declare dead (non-returning) and
* pure (no side effects) functions using "volatile" and "const";
* unfortunately, these then cause warnings under "-ansi -pedantic".
* GCC2 uses a new, peculiar __attribute__((attrs)) style. All of
* these work for GNU C++ (modulo a slight glitch in the C++ grammar
* in the distribution version of 2.5.5).
*/
#if !defined(__GNUC__) || __GNUC__ < 2 || __GNUC_MINOR__ < 5
#define __attribute__(x)
/* delete __attribute__ if non-gcc or gcc1 */
#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
#define __dead __volatile
#define __pure __const
#endif
#endif
/* Delete pseudo-keywords wherever they are not available or needed. */
#ifndef __dead
#define __dead
#define __pure
#endif
#endif
/* !_CDEFS_H_ */
src/backend/regex/cname.h
deleted
100644 → 0
View file @
5c0d6ccd
/*-
* Copyright (c) 1992, 1993, 1994 Henry Spencer.
* Copyright (c) 1992, 1993, 1994
* The Regents of the University of California. All rights reserved.
*
* This code is derived from software contributed to Berkeley by
* Henry Spencer.
*
* 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.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
*
* @(#)cname.h 8.3 (Berkeley) 3/20/94
*/
/* character-name table */
static
struct
cname
{
char
*
name
;
char
code
;
}
cnames
[]
=
{
{
"NUL"
,
'\0'
},
{
"SOH"
,
'\001'
},
{
"STX"
,
'\002'
},
{
"ETX"
,
'\003'
},
{
"EOT"
,
'\004'
},
{
"ENQ"
,
'\005'
},
{
"ACK"
,
'\006'
},
{
"BEL"
,
'\007'
},
{
"alert"
,
'\007'
},
{
"BS"
,
'\010'
},
{
"backspace"
,
'\b'
},
{
"HT"
,
'\011'
},
{
"tab"
,
'\t'
},
{
"LF"
,
'\012'
},
{
"newline"
,
'\n'
},
{
"VT"
,
'\013'
},
{
"vertical-tab"
,
'\v'
},
{
"FF"
,
'\014'
},
{
"form-feed"
,
'\f'
},
{
"CR"
,
'\015'
},
{
"carriage-return"
,
'\r'
},
{
"SO"
,
'\016'
},
{
"SI"
,
'\017'
},
{
"DLE"
,
'\020'
},
{
"DC1"
,
'\021'
},
{
"DC2"
,
'\022'
},
{
"DC3"
,
'\023'
},
{
"DC4"
,
'\024'
},
{
"NAK"
,
'\025'
},
{
"SYN"
,
'\026'
},
{
"ETB"
,
'\027'
},
{
"CAN"
,
'\030'
},
{
"EM"
,
'\031'
},
{
"SUB"
,
'\032'
},
{
"ESC"
,
'\033'
},
{
"IS4"
,
'\034'
},
{
"FS"
,
'\034'
},
{
"IS3"
,
'\035'
},
{
"GS"
,
'\035'
},
{
"IS2"
,
'\036'
},
{
"RS"
,
'\036'
},
{
"IS1"
,
'\037'
},
{
"US"
,
'\037'
},
{
"space"
,
' '
},
{
"exclamation-mark"
,
'!'
},
{
"quotation-mark"
,
'"'
},
{
"number-sign"
,
'#'
},
{
"dollar-sign"
,
'$'
},
{
"percent-sign"
,
'%'
},
{
"ampersand"
,
'&'
},
{
"apostrophe"
,
'\''
},
{
"left-parenthesis"
,
'('
},
{
"right-parenthesis"
,
')'
},
{
"asterisk"
,
'*'
},
{
"plus-sign"
,
'+'
},
{
"comma"
,
','
},
{
"hyphen"
,
'-'
},
{
"hyphen-minus"
,
'-'
},
{
"period"
,
'.'
},
{
"full-stop"
,
'.'
},
{
"slash"
,
'/'
},
{
"solidus"
,
'/'
},
{
"zero"
,
'0'
},
{
"one"
,
'1'
},
{
"two"
,
'2'
},
{
"three"
,
'3'
},
{
"four"
,
'4'
},
{
"five"
,
'5'
},
{
"six"
,
'6'
},
{
"seven"
,
'7'
},
{
"eight"
,
'8'
},
{
"nine"
,
'9'
},
{
"colon"
,
':'
},
{
"semicolon"
,
';'
},
{
"less-than-sign"
,
'<'
},
{
"equals-sign"
,
'='
},
{
"greater-than-sign"
,
'>'
},
{
"question-mark"
,
'?'
},
{
"commercial-at"
,
'@'
},
{
"left-square-bracket"
,
'['
},
{
"backslash"
,
'\\'
},
{
"reverse-solidus"
,
'\\'
},
{
"right-square-bracket"
,
']'
},
{
"circumflex"
,
'^'
},
{
"circumflex-accent"
,
'^'
},
{
"underscore"
,
'_'
},
{
"low-line"
,
'_'
},
{
"grave-accent"
,
'`'
},
{
"left-brace"
,
'{'
},
{
"left-curly-bracket"
,
'{'
},
{
"vertical-line"
,
'|'
},
{
"right-brace"
,
'}'
},
{
"right-curly-bracket"
,
'}'
},
{
"tilde"
,
'~'
},
{
"DEL"
,
'\177'
},
{
NULL
,
0
}
};
src/backend/regex/regcomp.c
View file @
ca405ae4
...
...
@@ -49,11 +49,11 @@ static char sccsid[] = "@(#)regcomp.c 8.5 (Berkeley) 3/20/94";
#include <stdlib.h>
#include <regex.h>
#include "utils.h"
#include "regex2.h"
#include "
regex/
utils.h"
#include "regex
/regex
2.h"
#include "cclass.h"
#include "cname.h"
#include "
regex/
cclass.h"
#include "
regex/
cname.h"
/*
* parse structure, passed up and down to avoid global variables and
...
...
src/backend/regex/regerror.c
View file @
ca405ae4
...
...
@@ -49,7 +49,7 @@ static char sccsid[] = "@(#)regerror.c 8.4 (Berkeley) 3/20/94";
#include <stdlib.h>
#include <regex.h>
#include "utils.h"
#include "
regex/
utils.h"
/* ========= begin header generated by ./mkh ========= */
#ifdef __cplusplus
...
...
src/backend/regex/regex.h
deleted
100644 → 0
View file @
5c0d6ccd
/*-
* Copyright (c) 1992 Henry Spencer.
* Copyright (c) 1992, 1993
* The Regents of the University of California. All rights reserved.
*
* This code is derived from software contributed to Berkeley by
* Henry Spencer of the University of Toronto.
*
* 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.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
*
* @(#)regex.h 8.2 (Berkeley) 1/3/94
*/
#ifndef _REGEX_H_
#define _REGEX_H_
/* #include <sys/cdefs.h> */
/* since not all systems have cdefs.h, we'll use our own here - jolly */
#include "cdefs.h"
/* types */
typedef
off_t
regoff_t
;
typedef
struct
{
int
re_magic
;
size_t
re_nsub
;
/* number of parenthesized subexpressions */
__const
char
*
re_endp
;
/* end pointer for REG_PEND */
struct
re_guts
*
re_g
;
/* none of your business :-) */
}
regex_t
;
typedef
struct
{
regoff_t
rm_so
;
/* start of match */
regoff_t
rm_eo
;
/* end of match */
}
regmatch_t
;
/* regcomp() flags */
#define REG_BASIC 0000
#define REG_EXTENDED 0001
#define REG_ICASE 0002
#define REG_NOSUB 0004
#define REG_NEWLINE 0010
#define REG_NOSPEC 0020
#define REG_PEND 0040
#define REG_DUMP 0200
/* regerror() flags */
#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_EMPTY 14
#define REG_ASSERT 15
#define REG_INVARG 16
#define REG_ATOI 255
/* convert name to number (!) */
#define REG_ITOA 0400
/* convert number to name (!) */
/* regexec() flags */
#define REG_NOTBOL 00001
#define REG_NOTEOL 00002
#define REG_STARTEND 00004
#define REG_TRACE 00400
/* tracing of execution */
#define REG_LARGE 01000
/* force large representation */
#define REG_BACKR 02000
/* force use of backref code */
__BEGIN_DECLS
int
pg95_regcomp
__P
((
regex_t
*
,
const
char
*
,
int
));
size_t
pg95_regerror
__P
((
int
,
const
regex_t
*
,
char
*
,
size_t
));
int
pg95_regexec
__P
((
const
regex_t
*
,
const
char
*
,
size_t
,
regmatch_t
[],
int
));
void
pg95_regfree
__P
((
regex_t
*
));
__END_DECLS
#endif
/* !_REGEX_H_ */
src/backend/regex/regex2.h
deleted
100644 → 0
View file @
5c0d6ccd
/*-
* Copyright (c) 1992, 1993, 1994 Henry Spencer.
* Copyright (c) 1992, 1993, 1994
* The Regents of the University of California. All rights reserved.
*
* This code is derived from software contributed to Berkeley by
* Henry Spencer.
*
* 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.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
*
* @(#)regex2.h 8.4 (Berkeley) 3/20/94
*/
/*
* First, the stuff that ends up in the outside-world include file
*/
/*
typedef off_t regoff_t;
typedef struct {
int re_magic;
size_t re_nsub; // number of parenthesized subexpressions
const char *re_endp; // end pointer for REG_PEND
struct re_guts *re_g; // none of your business :-)
} regex_t;
typedef struct {
regoff_t rm_so; // start of match
regoff_t rm_eo; // end of match
} regmatch_t;
*/
/*
* internals of regex_t
*/
#define MAGIC1 ((('r'^0200)<<8) | 'e')
/*
* The internal representation is a *strip*, a sequence of
* operators ending with an endmarker. (Some terminology etc. is a
* historical relic of earlier versions which used multiple strips.)
* Certain oddities in the representation are there to permit running
* the machinery backwards; in particular, any deviation from sequential
* flow must be marked at both its source and its destination. Some
* fine points:
*
* - OPLUS_ and O_PLUS are *inside* the loop they create.
* - OQUEST_ and O_QUEST are *outside* the bypass they create.
* - OCH_ and O_CH are *outside* the multi-way branch they create, while
* OOR1 and OOR2 are respectively the end and the beginning of one of
* the branches. Note that there is an implicit OOR2 following OCH_
* and an implicit OOR1 preceding O_CH.
*
* In state representations, an operator's bit is on to signify a state
* immediately *preceding* "execution" of that operator.
*/
typedef
unsigned
long
sop
;
/* strip operator */
typedef
long
sopno
;
#define OPRMASK 0xf8000000
#define OPDMASK 0x07ffffff
#define OPSHIFT ((unsigned)27)
#define OP(n) ((n)&OPRMASK)
#define OPND(n) ((n)&OPDMASK)
#define SOP(op, opnd) ((op)|(opnd))
/* operators meaning operand */
/* (back, fwd are offsets) */
#define OEND (1<<OPSHIFT)
/* endmarker - */
#define OCHAR (2<<OPSHIFT)
/* character unsigned char */
#define OBOL (3<<OPSHIFT)
/* left anchor - */
#define OEOL (4<<OPSHIFT)
/* right anchor - */
#define OANY (5<<OPSHIFT)
/* . - */
#define OANYOF (6<<OPSHIFT)
/* [...] set number */
#define OBACK_ (7<<OPSHIFT)
/* begin \d paren number */
#define O_BACK (8<<OPSHIFT)
/* end \d paren number */
#define OPLUS_ (9<<OPSHIFT)
/* + prefix fwd to suffix */
#define O_PLUS (10<<OPSHIFT)
/* + suffix back to prefix */
#define OQUEST_ (11<<OPSHIFT)
/* ? prefix fwd to suffix */
#define O_QUEST (12<<OPSHIFT)
/* ? suffix back to prefix */
#define OLPAREN (13<<OPSHIFT)
/* ( fwd to ) */
#define ORPAREN (14<<OPSHIFT)
/* ) back to ( */
#define OCH_ (15<<OPSHIFT)
/* begin choice fwd to OOR2 */
#define OOR1 (16<<OPSHIFT)
/* | pt. 1 back to OOR1 or OCH_ */
#define OOR2 (17<<OPSHIFT)
/* | pt. 2 fwd to OOR2 or O_CH */
#define O_CH (18<<OPSHIFT)
/* end choice back to OOR1 */
#define OBOW (19<<OPSHIFT)
/* begin word - */
#define OEOW (20<<OPSHIFT)
/* end word - */
/*
* Structure for [] character-set representation. Character sets are
* done as bit vectors, grouped 8 to a byte vector for compactness.
* The individual set therefore has both a pointer to the byte vector
* and a mask to pick out the relevant bit of each byte. A hash code
* simplifies testing whether two sets could be identical.
*
* This will get trickier for multicharacter collating elements. As
* preliminary hooks for dealing with such things, we also carry along
* a string of multi-character elements, and decide the size of the
* vectors at run time.
*/
typedef
struct
{
uch
*
ptr
;
/* -> uch [csetsize] */
uch
mask
;
/* bit within array */
uch
hash
;
/* hash code */
size_t
smultis
;
char
*
multis
;
/* -> char[smulti] ab\0cd\0ef\0\0 */
}
cset
;
/* note that CHadd and CHsub are unsafe, and CHIN doesn't yield 0/1 */
#define CHadd(cs, c) ((cs)->ptr[(uch)(c)] |= (cs)->mask, (cs)->hash += (c))
#define CHsub(cs, c) ((cs)->ptr[(uch)(c)] &= ~(cs)->mask, (cs)->hash -= (c))
#define CHIN(cs, c) ((cs)->ptr[(uch)(c)] & (cs)->mask)
#define MCadd(p, cs, cp) mcadd(p, cs, cp)
/* regcomp() internal fns */
#define MCsub(p, cs, cp) mcsub(p, cs, cp)
#define MCin(p, cs, cp) mcin(p, cs, cp)
/* stuff for character categories */
typedef
unsigned
char
cat_t
;
/*
* main compiled-expression structure
*/
struct
re_guts
{
int
magic
;
# define MAGIC2 ((('R'^0200)<<8)|'E')
sop
*
strip
;
/* malloced area for strip */
int
csetsize
;
/* number of bits in a cset vector */
int
ncsets
;
/* number of csets in use */
cset
*
sets
;
/* -> cset [ncsets] */
uch
*
setbits
;
/* -> uch[csetsize][ncsets/CHAR_BIT] */
int
cflags
;
/* copy of regcomp() cflags argument */
sopno
nstates
;
/* = number of sops */
sopno
firststate
;
/* the initial OEND (normally 0) */
sopno
laststate
;
/* the final OEND */
int
iflags
;
/* internal flags */
# define USEBOL 01
/* used ^ */
# define USEEOL 02
/* used $ */
# define BAD 04
/* something wrong */
int
nbol
;
/* number of ^ used */
int
neol
;
/* number of $ used */
int
ncategories
;
/* how many character categories */
cat_t
*
categories
;
/* ->catspace[-CHAR_MIN] */
char
*
must
;
/* match must contain this string */
int
mlen
;
/* length of must */
size_t
nsub
;
/* copy of re_nsub */
int
backrefs
;
/* does it use back references? */
sopno
nplus
;
/* how deep does it nest +s? */
/* catspace must be last */
cat_t
catspace
[
1
];
/* actually [NC] */
};
/* misc utilities */
#define OUT (CHAR_MAX+1)
/* a non-character value */
#define ISWORD(c) (isalnum(c) || (c) == '_')
src/backend/regex/regexec.c
View file @
ca405ae4
...
...
@@ -56,8 +56,8 @@ static char sccsid[] = "@(#)regexec.c 8.3 (Berkeley) 3/20/94";
#include <ctype.h>
#include <regex.h>
#include "utils.h"
#include "regex2.h"
#include "
regex/
utils.h"
#include "regex
/regex
2.h"
static
int
nope
=
0
;
/* for use in asserts; shuts lint up */
...
...
src/backend/regex/regexp.h
deleted
100644 → 0
View file @
5c0d6ccd
/*
* Copyright (c) 1986 by University of Toronto.
* Copyright (c) 1989, 1993
* The Regents of the University of California. All rights reserved.
*
* This code is derived from software contributed to Berkeley
* by Henry Spencer.
*
* 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.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
*
* @(#)regexp.h 8.1 (Berkeley) 6/2/93
*/
#ifndef _REGEXP_H_
#define _REGEXP_H_
/*
* Definitions etc. for regexp(3) routines.
*
* Caveat: this is V8 regexp(3) [actually, a reimplementation thereof],
* not the System V one.
*/
#define NSUBEXP 10
typedef
struct
regexp
{
char
*
startp
[
NSUBEXP
];
char
*
endp
[
NSUBEXP
];
char
regstart
;
/* Internal use only. */
char
reganch
;
/* Internal use only. */
char
*
regmust
;
/* Internal use only. */
int
regmlen
;
/* Internal use only. */
char
program
[
1
];
/* Unwarranted chumminess with compiler. */
}
regexp
;
/* #include <sys/cdefs.h> */
/* since not all systems have cdefs.h, we'll use our own here - jolly */
#include "cdefs.h"
__BEGIN_DECLS
regexp
*
pg95_regcomp
__P
((
const
char
*
));
int
pg95_regexec
__P
((
const
regexp
*
,
const
char
*
));
void
pg95_regsub
__P
((
const
regexp
*
,
const
char
*
,
char
*
));
void
pg95_regerror
__P
((
const
char
*
));
__END_DECLS
#endif
/* !_REGEXP_H_ */
src/backend/regex/regfree.c
View file @
ca405ae4
...
...
@@ -46,8 +46,8 @@ static char sccsid[] = "@(#)regfree.c 8.3 (Berkeley) 3/20/94";
#include <stdlib.h>
#include <regex.h>
#include "utils.h"
#include "regex2.h"
#include "
regex/
utils.h"
#include "regex
/regex
2.h"
/*
- regfree - free everything
...
...
src/backend/regex/utils.h
deleted
100644 → 0
View file @
5c0d6ccd
/*-
* Copyright (c) 1992, 1993, 1994 Henry Spencer.
* Copyright (c) 1992, 1993, 1994
* The Regents of the University of California. All rights reserved.
*
* This code is derived from software contributed to Berkeley by
* Henry Spencer.
*
* 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.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
*
* @(#)utils.h 8.3 (Berkeley) 3/20/94
*/
/* utility definitions */
#define DUPMAX 100000000
/* xxx is this right? */
#define INFINITY (DUPMAX + 1)
#define NC (CHAR_MAX - CHAR_MIN + 1)
typedef
unsigned
char
uch
;
/* switch off assertions (if not already off) if no REDEBUG */
#ifndef REDEBUG
#ifndef NDEBUG
#define NDEBUG
/* no assertions please */
#endif
#endif
#include <assert.h>
/* for old systems with bcopy() but no memmove() */
#if defined(PORTNAME_sparc)
#define memmove(d, s, c) bcopy(s, d, c)
#endif
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment