| 6 |
and semantics are as close as possible to those of the Perl 5 language. |
and semantics are as close as possible to those of the Perl 5 language. |
| 7 |
|
|
| 8 |
Written by Philip Hazel |
Written by Philip Hazel |
| 9 |
Copyright (c) 1997-2009 University of Cambridge |
Copyright (c) 1997-2010 University of Cambridge |
| 10 |
|
|
| 11 |
----------------------------------------------------------------------------- |
----------------------------------------------------------------------------- |
| 12 |
Redistribution and use in source and binary forms, with or without |
Redistribution and use in source and binary forms, with or without |
| 112 |
break; |
break; |
| 113 |
|
|
| 114 |
case PT_LAMP: |
case PT_LAMP: |
| 115 |
if ((prop->chartype == ucp_Lu || prop->chartype == ucp_Ll || prop->chartype == ucp_Lt) == |
if ((prop->chartype == ucp_Lu || prop->chartype == ucp_Ll || |
| 116 |
(t == XCL_PROP)) return !negated; |
prop->chartype == ucp_Lt) == (t == XCL_PROP)) return !negated; |
| 117 |
break; |
break; |
| 118 |
|
|
| 119 |
case PT_GC: |
case PT_GC: |
| 120 |
if ((data[1] == _pcre_ucp_gentype[prop->chartype]) == (t == XCL_PROP)) return !negated; |
if ((data[1] == _pcre_ucp_gentype[prop->chartype]) == (t == XCL_PROP)) |
| 121 |
|
return !negated; |
| 122 |
break; |
break; |
| 123 |
|
|
| 124 |
case PT_PC: |
case PT_PC: |
| 128 |
case PT_SC: |
case PT_SC: |
| 129 |
if ((data[1] == prop->script) == (t == XCL_PROP)) return !negated; |
if ((data[1] == prop->script) == (t == XCL_PROP)) return !negated; |
| 130 |
break; |
break; |
| 131 |
|
|
| 132 |
|
case PT_ALNUM: |
| 133 |
|
if ((_pcre_ucp_gentype[prop->chartype] == ucp_L || |
| 134 |
|
_pcre_ucp_gentype[prop->chartype] == ucp_N) == (t == XCL_PROP)) |
| 135 |
|
return !negated; |
| 136 |
|
break; |
| 137 |
|
|
| 138 |
|
case PT_SPACE: /* Perl space */ |
| 139 |
|
if ((_pcre_ucp_gentype[prop->chartype] == ucp_Z || |
| 140 |
|
c == CHAR_HT || c == CHAR_NL || c == CHAR_FF || c == CHAR_CR) |
| 141 |
|
== (t == XCL_PROP)) |
| 142 |
|
return !negated; |
| 143 |
|
break; |
| 144 |
|
|
| 145 |
|
case PT_PXSPACE: /* POSIX space */ |
| 146 |
|
if ((_pcre_ucp_gentype[prop->chartype] == ucp_Z || |
| 147 |
|
c == CHAR_HT || c == CHAR_NL || c == CHAR_VT || |
| 148 |
|
c == CHAR_FF || c == CHAR_CR) == (t == XCL_PROP)) |
| 149 |
|
return !negated; |
| 150 |
|
break; |
| 151 |
|
|
| 152 |
|
case PT_WORD: |
| 153 |
|
if ((_pcre_ucp_gentype[prop->chartype] == ucp_L || |
| 154 |
|
_pcre_ucp_gentype[prop->chartype] == ucp_N || c == CHAR_UNDERSCORE) |
| 155 |
|
== (t == XCL_PROP)) |
| 156 |
|
return !negated; |
| 157 |
|
break; |
| 158 |
|
|
| 159 |
/* This should never occur, but compilers may mutter if there is no |
/* This should never occur, but compilers may mutter if there is no |
| 160 |
default. */ |
default. */ |