if (stop) {
if (label != topSym && stop) {
  public int hashCode() {    int code = label.hashCode();    code = (code << 2) ^ headWord.hashCode();    if (stop) {      code = (code << 1) | (isPreterminal() ? 1 : 0);      return code;    }    if (leftSubcat != null)      code = (code << 2) ^ leftSubcat.hashCode();    if (rightSubcat != null)      code = (code << 2) ^ rightSubcat.hashCode();    if (headChild != null)      code = (code << 2) ^ headChild.label().hashCode();    code = (code << 2) ^ leftPrevMods.hashCode();    code = (code << 2) ^ rightPrevMods.hashCode();    int booleanCode = 0;    //booleanCode = (booleanCode << 1) | (stop ? 1 : 0);    booleanCode = (booleanCode << 1) | (leftVerb ? 1 : 0);    booleanCode = (booleanCode << 1) | (rightVerb ? 1 : 0);    return code ^ booleanCode;  }