if (item.start() == 0 && item.end() == 3 && item.label() == S) {
if (item.start() == 0 && item.end() == 17 && item.label() == NPA) {
  protected List addStopProbs(CKYItem item, List itemsAdded)    throws RemoteException {    if (!(item.leftSubcat().empty() && item.rightSubcat().empty()))      return itemsAdded;    /*    SexpList leftPrevMods =      getPrevMods(item, item.leftPrevMods(), item.leftChildren());    SexpList rightPrevMods =      getPrevMods(item, item.rightPrevMods(), item.rightChildren());    */    // technically, we should getPrevMods for both lists here, but there    // shouldn't be skipping of previous mods because of generation of stopSym    SexpList leftPrevMods = item.leftPrevMods();    SexpList rightPrevMods = item.rightPrevMods();    tmpChildrenList.set(null, item.leftChildren());    WordList leftPrevWords = getPrevModWords(item, tmpChildrenList,					     Constants.LEFT);    tmpChildrenList.set(null, item.rightChildren());    WordList rightPrevWords = getPrevModWords(item, tmpChildrenList,					      Constants.RIGHT);    ModifierEvent leftMod = lookupLeftStopEvent;    leftMod.set(stopWord, item.headWord(), stopSym, leftPrevMods,		leftPrevWords,		(Symbol)item.label(), item.headLabel(), item.leftSubcat(),		item.leftVerb(), Constants.LEFT);    ModifierEvent rightMod = lookupRightStopEvent;    rightMod.set(stopWord, item.headWord(), stopSym, rightPrevMods,		 rightPrevWords,		 (Symbol)item.label(), item.headLabel(),		 item.rightSubcat(), item.rightVerb(), Constants.RIGHT);    if (debugStops) {      if (item.start() == 0 && item.end() == 3 && item.label() == S) {	System.err.println(className + ".addStopProbs: trying to add stop " +			   "probs to item " + item);      }    }    if (isomorphicTreeConstraints) {      if (!item.getConstraint().isSatisfiedBy(item)) {	if (debugConstraints)	  System.err.println("constraint " + item.getConstraint() +			     " is not satisfied by item " + item);	return itemsAdded;      }    }    double leftLogProb = server.logProbMod(id, leftMod);    if (leftLogProb <= logOfZero) {      if (hardConstraints)	return itemsAdded;      else	leftLogProb = Constants.logProbSmall;    }    double rightLogProb = server.logProbMod(id, rightMod);    if (rightLogProb <= logOfZero) {      if (hardConstraints)	return itemsAdded;      else	rightLogProb = Constants.logProbSmall;    }    double logTreeProb =      item.logTreeProb() + leftLogProb + rightLogProb;    double logPrior = item.logPrior();    double logProb = logTreeProb + logPrior;    if (debugStops) {      if (item.start() == 0 && item.end() == 3 && item.label() == S) {	System.err.println(className + ".addStopProbs: adding stops to item " +			   item);      }    }    if (logProb <= logOfZero) {      if (hardConstraints)	return itemsAdded;      else	logProb = Constants.logProbSmall;    }    CKYItem newItem = chart.getNewItem();    newItem.set((Symbol)item.label(), item.headWord(),		item.leftSubcat(), item.rightSubcat(),		item.headChild(),		item.leftChildren(), item.rightChildren(),		item.leftPrevMods(), item.rightPrevMods(),		item.start(), item.end(), item.leftVerb(),		item.rightVerb(), true, logTreeProb, logPrior, logProb);    if (isomorphicTreeConstraints) {      if (debugConstraints)	System.err.println("assigning satisfied constraint " +			   item.getConstraint() + " to " + newItem);      newItem.setConstraint(item.getConstraint());    }    newItem.hasAntecedent(item);    boolean added = chart.add(item.start(), item.end(), newItem);    if (added)      itemsAdded.add(newItem);    else {      if (debugStops) {	if (item.start() == 0 && item.end() == 3 && item.label() == S) {	  System.err.println(className + ".addStopProbs: couldn't add item");	}      }      chart.reclaimItem(newItem);    }    return itemsAdded;  }