13191320132113221323132413251326132713281329
if (opStack.isEmpty()) { return retValue; } op = (Op) opStack.pop(); offset = dataStack.pop(); switch (op.type) { case Op.CLOSURE: case Op.QUESTION: if (retValue < 0) {
13401341134213431344134513461347134813491350
} break; case Op.UNION: { int unionIndex = dataStack.pop(); if (DEBUG) { System.err.println("UNION: "+unionIndex+", ret="+retValue); } if (retValue < 0) {
13621363136413651366136713681369137013711372
} 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 {
13761377137813791380138113821383138413851386
break; case Op.LOOKAHEAD: case Op.LOOKBEHIND: { dx = dataStack.pop(); if (0 <= retValue) { op = op.next; returned = false; } retValue = -1;
13881389139013911392139313941395139613971398
break; case Op.NEGATIVELOOKAHEAD: case Op.NEGATIVELOOKBEHIND: { dx = dataStack.pop(); if (0 > retValue) { op = op.next; returned = false; } retValue = -1;
13981399140014011402140314041405140614071408
retValue = -1; } break; case Op.MODIFIER: opts = dataStack.pop(); // fall through case Op.INDEPENDENT: if (retValue >= 0) { offset = retValue;