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 |
1133 |
offset_top = md->end_offset_top; |
offset_top = md->end_offset_top; |
1134 |
continue; |
continue; |
1135 |
|
|
1136 |
/* Negative assertion: all branches must fail to match */ |
/* Negative assertion: all branches must fail to match. Encountering SKIP, |
1137 |
|
PRUNE, or COMMIT means we must assume failure without checking subsequent |
1138 |
|
branches. */ |
1139 |
|
|
1140 |
case OP_ASSERT_NOT: |
case OP_ASSERT_NOT: |
1141 |
case OP_ASSERTBACK_NOT: |
case OP_ASSERTBACK_NOT: |
1144 |
RMATCH(eptr, ecode + 1 + LINK_SIZE, offset_top, md, ims, NULL, 0, |
RMATCH(eptr, ecode + 1 + LINK_SIZE, offset_top, md, ims, NULL, 0, |
1145 |
RM5); |
RM5); |
1146 |
if (rrc == MATCH_MATCH) RRETURN(MATCH_NOMATCH); |
if (rrc == MATCH_MATCH) RRETURN(MATCH_NOMATCH); |
1147 |
|
if (rrc == MATCH_SKIP || rrc == MATCH_PRUNE || rrc == MATCH_COMMIT) |
1148 |
|
{ |
1149 |
|
do ecode += GET(ecode,1); while (*ecode == OP_ALT); |
1150 |
|
break; |
1151 |
|
} |
1152 |
if (rrc != MATCH_NOMATCH && rrc != MATCH_THEN) RRETURN(rrc); |
if (rrc != MATCH_NOMATCH && rrc != MATCH_THEN) RRETURN(rrc); |
1153 |
ecode += GET(ecode,1); |
ecode += GET(ecode,1); |
1154 |
} |
} |