* @return Whether the lattice could be parsed by the grammar
   */
  public boolean parse(HTKLatticeReader lr) {
    TreePrint treePrint = getTreePrint();
    PrintWriter pwOut = op.tlpParams.pw();
    parseSucceeded = false;
    if (lr.getNumStates() > Test.maxLength + 1) {  // + 1 for boundary symbol
      throw new UnsupportedOperationException("Lattice too big: " + lr.getNumStates());
    }
    if (op.doPCFG) {
      if (!pparser.parse(lr)) {
        return parseSucceeded;
      }
      if (Test.verbose) {
        System.out.println("PParser output");
        treePrint.printTree(debinarizer.transformTree(pparser.getBestParse()), pwOut);
      }
    }
    return true;
  }