13221323132413251326132713281329133013311332
if (opStack.isEmpty()) { return retValue; } op = (Op) opStack.pop(); offset = dataStack.pop(); switch (op.type) { case Op.CLOSURE: case Op.QUESTION: if (retValue < 0) {
13431344134513461347134813491350135113521353
} break; case Op.UNION: { int unionIndex = dataStack.pop(); if (DEBUG) { System.err.println("UNION: "+unionIndex+", ret="+retValue); } if (retValue < 0) {
13651366136713681369137013711372137313741375
} break; case Op.CAPTURE: final int refno = op.getData(); final int saved = dataStack.pop(); if (retValue < 0) { if (refno > 0) { con.match.setBeginning(refno, saved); } else {
13791380138113821383138413851386138713881389
break; case Op.LOOKAHEAD: case Op.LOOKBEHIND: { dx = dataStack.pop(); if (0 <= retValue) { op = op.next; returned = false; } retValue = -1;
13911392139313941395139613971398139914001401
break; case Op.NEGATIVELOOKAHEAD: case Op.NEGATIVELOOKBEHIND: { dx = dataStack.pop(); if (0 > retValue) { op = op.next; returned = false; } retValue = -1;
14011402140314041405140614071408140914101411
retValue = -1; } break; case Op.MODIFIER: opts = dataStack.pop(); // fall through case Op.INDEPENDENT: if (retValue >= 0) { offset = retValue;