Add regular expression matching support, based on OpenBSD regexec()/regcomp()
[oota-llvm.git] / lib / Support / regcclass.h
1 /*-
2  * This code is derived from OpenBSD's libc/regex, original license follows:
3  *
4  * This code is derived from OpenBSD's libc/regex, original license follows:
5  *
6  * Copyright (c) 1992, 1993, 1994 Henry Spencer.
7  * Copyright (c) 1992, 1993, 1994
8  *      The Regents of the University of California.  All rights reserved.
9  *
10  * This code is derived from software contributed to Berkeley by
11  * Henry Spencer.
12  *
13  * Redistribution and use in source and binary forms, with or without
14  * modification, are permitted provided that the following conditions
15  * are met:
16  * 1. Redistributions of source code must retain the above copyright
17  *    notice, this list of conditions and the following disclaimer.
18  * 2. Redistributions in binary form must reproduce the above copyright
19  *    notice, this list of conditions and the following disclaimer in the
20  *    documentation and/or other materials provided with the distribution.
21  * 3. Neither the name of the University nor the names of its contributors
22  *    may be used to endorse or promote products derived from this software
23  *    without specific prior written permission.
24  *
25  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
26  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
28  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
29  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
30  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
31  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
32  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
33  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
34  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
35  * SUCH DAMAGE.
36  *
37  *      @(#)cclass.h    8.3 (Berkeley) 3/20/94
38  */
39
40 /* character-class table */
41 static struct cclass {
42         const char *name;
43         const char *chars;
44         const char *multis;
45 } cclasses[] = {
46         { "alnum",      "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\
47 0123456789",                            ""} ,
48         { "alpha",      "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",
49                                         ""} ,
50         { "blank",      " \t",          ""} ,
51         { "cntrl",      "\007\b\t\n\v\f\r\1\2\3\4\5\6\16\17\20\21\22\23\24\
52 \25\26\27\30\31\32\33\34\35\36\37\177", ""} ,
53         { "digit",      "0123456789",   ""} ,
54         { "graph",      "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\
55 0123456789!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~",
56                                         ""} ,
57         { "lower",      "abcdefghijklmnopqrstuvwxyz",
58                                         ""} ,
59         { "print",      "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\
60 0123456789!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~ ",
61                                         ""} ,
62         { "punct",      "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~",
63                                         ""} ,
64         { "space",      "\t\n\v\f\r ",  ""} ,
65         { "upper",      "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
66                                         ""} ,
67         { "xdigit",     "0123456789ABCDEFabcdef",
68                                         ""} ,
69         { NULL,         0,              "" }
70 };