summaryrefslogtreecommitdiff
path: root/charclass_invlists.h
diff options
context:
space:
mode:
authorKarl Williamson <public@khwilliamson.com>2012-02-04 11:42:58 -0700
committerKarl Williamson <public@khwilliamson.com>2012-02-09 10:13:57 -0700
commit3f427fd9b3d9172856d6247beacfaedb3a38b17d (patch)
treee5a0b56d8adcac229f0b24c9de5c77ba82322fa7 /charclass_invlists.h
parenta3e1f3a6180fe54649735a678cb15de8aaacf5e9 (diff)
downloadperl-3f427fd9b3d9172856d6247beacfaedb3a38b17d.tar.gz
Add compile-time inversion lists for POSIX classes
These will be used in regcomp.c to replace the existing bit-wise handling of these, enabling subsequent optimizations. These are compiled-in, and hence affect the memory footprint of every program, including those that don't use Unicode. The lists that aren't tiny are therefore currently restricted to only the Latin1 range; anything needed beyond that will have to be read in at execution time, just as before. The design allows for easy conversion from Latin1 to use the full Unicode range, should it be deemed desirable for some or all of these.
Diffstat (limited to 'charclass_invlists.h')
-rw-r--r--charclass_invlists.h498
1 files changed, 498 insertions, 0 deletions
diff --git a/charclass_invlists.h b/charclass_invlists.h
index dbb32d857b..2cfcac6155 100644
--- a/charclass_invlists.h
+++ b/charclass_invlists.h
@@ -36,4 +36,502 @@ UV ASCII_invlist[] = {
0
};
+UV HorizSpace_invlist[] = {
+ 18, /* Number of elements */
+ 0, /* Current iteration position */
+ 1064334010, /* Version and data structure type */
+ 1, /* 0 if this is the first element of the list proper;
+ 1 if the next element is the first */
+ 9,
+ 10,
+ 32,
+ 33,
+ 160,
+ 161,
+ 5760,
+ 5761,
+ 6158,
+ 6159,
+ 8192,
+ 8203,
+ 8239,
+ 8240,
+ 8287,
+ 8288,
+ 12288,
+ 12289
+};
+
+UV VertSpace_invlist[] = {
+ 6, /* Number of elements */
+ 0, /* Current iteration position */
+ 1064334010, /* Version and data structure type */
+ 1, /* 0 if this is the first element of the list proper;
+ 1 if the next element is the first */
+ 10,
+ 14,
+ 133,
+ 134,
+ 8232,
+ 8234
+};
+
+UV PerlSpace_invlist[] = {
+ 6, /* Number of elements */
+ 0, /* Current iteration position */
+ 1064334010, /* Version and data structure type */
+ 1, /* 0 if this is the first element of the list proper;
+ 1 if the next element is the first */
+ 9,
+ 11,
+ 12,
+ 14,
+ 32,
+ 33
+};
+
+UV XPerlSpace_invlist[] = {
+ 24, /* Number of elements */
+ 0, /* Current iteration position */
+ 1064334010, /* Version and data structure type */
+ 1, /* 0 if this is the first element of the list proper;
+ 1 if the next element is the first */
+ 9,
+ 11,
+ 12,
+ 14,
+ 32,
+ 33,
+ 133,
+ 134,
+ 160,
+ 161,
+ 5760,
+ 5761,
+ 6158,
+ 6159,
+ 8192,
+ 8203,
+ 8232,
+ 8234,
+ 8239,
+ 8240,
+ 8287,
+ 8288,
+ 12288,
+ 12289
+};
+
+UV PosixAlnum_invlist[] = {
+ 6, /* Number of elements */
+ 0, /* Current iteration position */
+ 1064334010, /* Version and data structure type */
+ 1, /* 0 if this is the first element of the list proper;
+ 1 if the next element is the first */
+ 48,
+ 58,
+ 65,
+ 91,
+ 97,
+ 123
+};
+
+UV L1PosixAlnum_invlist[] = {
+ 18, /* Number of elements */
+ 0, /* Current iteration position */
+ 1064334010, /* Version and data structure type */
+ 1, /* 0 if this is the first element of the list proper;
+ 1 if the next element is the first */
+ 48,
+ 58,
+ 65,
+ 91,
+ 97,
+ 123,
+ 170,
+ 171,
+ 181,
+ 182,
+ 186,
+ 187,
+ 192,
+ 215,
+ 216,
+ 247,
+ 248,
+ 706
+};
+
+UV PosixAlpha_invlist[] = {
+ 4, /* Number of elements */
+ 0, /* Current iteration position */
+ 1064334010, /* Version and data structure type */
+ 1, /* 0 if this is the first element of the list proper;
+ 1 if the next element is the first */
+ 65,
+ 91,
+ 97,
+ 123
+};
+
+UV L1PosixAlpha_invlist[] = {
+ 16, /* Number of elements */
+ 0, /* Current iteration position */
+ 1064334010, /* Version and data structure type */
+ 1, /* 0 if this is the first element of the list proper;
+ 1 if the next element is the first */
+ 65,
+ 91,
+ 97,
+ 123,
+ 170,
+ 171,
+ 181,
+ 182,
+ 186,
+ 187,
+ 192,
+ 215,
+ 216,
+ 247,
+ 248,
+ 706
+};
+
+UV PosixBlank_invlist[] = {
+ 4, /* Number of elements */
+ 0, /* Current iteration position */
+ 1064334010, /* Version and data structure type */
+ 1, /* 0 if this is the first element of the list proper;
+ 1 if the next element is the first */
+ 9,
+ 10,
+ 32,
+ 33
+};
+
+UV XPosixBlank_invlist[] = {
+ 18, /* Number of elements */
+ 0, /* Current iteration position */
+ 1064334010, /* Version and data structure type */
+ 1, /* 0 if this is the first element of the list proper;
+ 1 if the next element is the first */
+ 9,
+ 10,
+ 32,
+ 33,
+ 160,
+ 161,
+ 5760,
+ 5761,
+ 6158,
+ 6159,
+ 8192,
+ 8203,
+ 8239,
+ 8240,
+ 8287,
+ 8288,
+ 12288,
+ 12289
+};
+
+UV PosixCntrl_invlist[] = {
+ 4, /* Number of elements */
+ 0, /* Current iteration position */
+ 1064334010, /* Version and data structure type */
+ 0, /* 0 if this is the first element of the list proper;
+ 1 if the next element is the first */
+ 32,
+ 127,
+ 128,
+ 0
+};
+
+UV XPosixCntrl_invlist[] = {
+ 4, /* Number of elements */
+ 0, /* Current iteration position */
+ 1064334010, /* Version and data structure type */
+ 0, /* 0 if this is the first element of the list proper;
+ 1 if the next element is the first */
+ 32,
+ 127,
+ 160,
+ 0
+};
+
+UV PosixDigit_invlist[] = {
+ 2, /* Number of elements */
+ 0, /* Current iteration position */
+ 1064334010, /* Version and data structure type */
+ 1, /* 0 if this is the first element of the list proper;
+ 1 if the next element is the first */
+ 48,
+ 58
+};
+
+UV PosixGraph_invlist[] = {
+ 2, /* Number of elements */
+ 0, /* Current iteration position */
+ 1064334010, /* Version and data structure type */
+ 1, /* 0 if this is the first element of the list proper;
+ 1 if the next element is the first */
+ 33,
+ 127
+};
+
+UV L1PosixGraph_invlist[] = {
+ 4, /* Number of elements */
+ 0, /* Current iteration position */
+ 1064334010, /* Version and data structure type */
+ 1, /* 0 if this is the first element of the list proper;
+ 1 if the next element is the first */
+ 33,
+ 127,
+ 161,
+ 888
+};
+
+UV PosixLower_invlist[] = {
+ 2, /* Number of elements */
+ 0, /* Current iteration position */
+ 1064334010, /* Version and data structure type */
+ 1, /* 0 if this is the first element of the list proper;
+ 1 if the next element is the first */
+ 97,
+ 123
+};
+
+UV L1PosixLower_invlist[] = {
+ 12, /* Number of elements */
+ 0, /* Current iteration position */
+ 1064334010, /* Version and data structure type */
+ 1, /* 0 if this is the first element of the list proper;
+ 1 if the next element is the first */
+ 97,
+ 123,
+ 170,
+ 171,
+ 181,
+ 182,
+ 186,
+ 187,
+ 223,
+ 247,
+ 248,
+ 256
+};
+
+UV PosixPrint_invlist[] = {
+ 2, /* Number of elements */
+ 0, /* Current iteration position */
+ 1064334010, /* Version and data structure type */
+ 1, /* 0 if this is the first element of the list proper;
+ 1 if the next element is the first */
+ 32,
+ 127
+};
+
+UV L1PosixPrint_invlist[] = {
+ 4, /* Number of elements */
+ 0, /* Current iteration position */
+ 1064334010, /* Version and data structure type */
+ 1, /* 0 if this is the first element of the list proper;
+ 1 if the next element is the first */
+ 32,
+ 127,
+ 160,
+ 888
+};
+
+UV PosixPunct_invlist[] = {
+ 8, /* Number of elements */
+ 0, /* Current iteration position */
+ 1064334010, /* Version and data structure type */
+ 1, /* 0 if this is the first element of the list proper;
+ 1 if the next element is the first */
+ 33,
+ 48,
+ 58,
+ 65,
+ 91,
+ 97,
+ 123,
+ 127
+};
+
+UV L1PosixPunct_invlist[] = {
+ 21, /* Number of elements */
+ 0, /* Current iteration position */
+ 1064334010, /* Version and data structure type */
+ 1, /* 0 if this is the first element of the list proper;
+ 1 if the next element is the first */
+ 33,
+ 48,
+ 58,
+ 65,
+ 91,
+ 97,
+ 123,
+ 127,
+ 161,
+ 162,
+ 167,
+ 168,
+ 171,
+ 172,
+ 182,
+ 184,
+ 187,
+ 188,
+ 191,
+ 192,
+ 894
+};
+
+UV PosixSpace_invlist[] = {
+ 4, /* Number of elements */
+ 0, /* Current iteration position */
+ 1064334010, /* Version and data structure type */
+ 1, /* 0 if this is the first element of the list proper;
+ 1 if the next element is the first */
+ 9,
+ 14,
+ 32,
+ 33
+};
+
+UV XPosixSpace_invlist[] = {
+ 22, /* Number of elements */
+ 0, /* Current iteration position */
+ 1064334010, /* Version and data structure type */
+ 1, /* 0 if this is the first element of the list proper;
+ 1 if the next element is the first */
+ 9,
+ 14,
+ 32,
+ 33,
+ 133,
+ 134,
+ 160,
+ 161,
+ 5760,
+ 5761,
+ 6158,
+ 6159,
+ 8192,
+ 8203,
+ 8232,
+ 8234,
+ 8239,
+ 8240,
+ 8287,
+ 8288,
+ 12288,
+ 12289
+};
+
+UV PosixUpper_invlist[] = {
+ 2, /* Number of elements */
+ 0, /* Current iteration position */
+ 1064334010, /* Version and data structure type */
+ 1, /* 0 if this is the first element of the list proper;
+ 1 if the next element is the first */
+ 65,
+ 91
+};
+
+UV L1PosixUpper_invlist[] = {
+ 7, /* Number of elements */
+ 0, /* Current iteration position */
+ 1064334010, /* Version and data structure type */
+ 1, /* 0 if this is the first element of the list proper;
+ 1 if the next element is the first */
+ 65,
+ 91,
+ 192,
+ 215,
+ 216,
+ 223,
+ 256
+};
+
+UV PosixWord_invlist[] = {
+ 8, /* Number of elements */
+ 0, /* Current iteration position */
+ 1064334010, /* Version and data structure type */
+ 1, /* 0 if this is the first element of the list proper;
+ 1 if the next element is the first */
+ 48,
+ 58,
+ 65,
+ 91,
+ 95,
+ 96,
+ 97,
+ 123
+};
+
+UV L1PosixWord_invlist[] = {
+ 20, /* Number of elements */
+ 0, /* Current iteration position */
+ 1064334010, /* Version and data structure type */
+ 1, /* 0 if this is the first element of the list proper;
+ 1 if the next element is the first */
+ 48,
+ 58,
+ 65,
+ 91,
+ 95,
+ 96,
+ 97,
+ 123,
+ 170,
+ 171,
+ 181,
+ 182,
+ 186,
+ 187,
+ 192,
+ 215,
+ 216,
+ 247,
+ 248,
+ 706
+};
+
+UV PosixXDigit_invlist[] = {
+ 6, /* Number of elements */
+ 0, /* Current iteration position */
+ 1064334010, /* Version and data structure type */
+ 1, /* 0 if this is the first element of the list proper;
+ 1 if the next element is the first */
+ 48,
+ 58,
+ 65,
+ 71,
+ 97,
+ 103
+};
+
+UV XPosixXDigit_invlist[] = {
+ 12, /* Number of elements */
+ 0, /* Current iteration position */
+ 1064334010, /* Version and data structure type */
+ 1, /* 0 if this is the first element of the list proper;
+ 1 if the next element is the first */
+ 48,
+ 58,
+ 65,
+ 71,
+ 97,
+ 103,
+ 65296,
+ 65306,
+ 65313,
+ 65319,
+ 65345,
+ 65351
+};
+
/* ex: set ro: */