@Override public void debug() { System.err.println("###################"); System.err.printf( "hypothesis [class=%s,id=%d,pos=%d,expired=%s,pending=%d]: %s\n", getClass(), System.identityHashCode(this), featurizable.targetPosition, hasExpired, pendingPhrases.size(), this); System.err.printf( "parent hypothesis [class=%s,id=%d,pos=%d,expired=%s]: %s\n", preceedingDerivation.getClass(), System.identityHashCode(preceedingDerivation), preceedingDerivation.featurizable.targetPosition, preceedingDerivation.hasExpired(), preceedingDerivation); System.err.println("pendingPhrasesCost: " + pendingPhrasesCost); DTUHypothesis<TK, FV> hyp = this; if (hyp.isDone() != hyp.featurizable.done) { System.err.println("Error in AbstractBeamInferer with: " + hyp); System.err.println("isDone(): " + hyp.isDone()); System.err.println("pending phrases: " + hyp.pendingPhrases.size()); System.err.println("f.done: " + hyp.featurizable.done); Derivation<TK, FV> curHyp = hyp; while (curHyp != null) { System.err.println(" " + curHyp.toString()); curHyp = curHyp.preceedingDerivation; } throw new RuntimeException(); } }