} Assert.isTrue(false, "Should not end here"); return true;
} Assert.isTrue((nodeStart <= fStart && nodeEnd < fEnd) || (nodeStart > fStart && nodeEnd >= fEnd)); return false;
	protected boolean visitNode(ASTNode node) {		int nodeStart= node.getStartPosition();		int nodeLength= node.getLength();		int nodeEnd= nodeStart + nodeLength;		if (nodeEnd < fStart || fEnd < nodeStart) {			return false;		} else if (fStart < nodeStart && nodeEnd < fEnd) {			return false;		} else if (nodeStart == fStart && fEnd == nodeEnd) {			fResult= node;			return false;		} else if (nodeStart <= fStart && fEnd <= nodeEnd) {			fResult= node;			// traverse down because there could be a more preceise match.			return true;		} else if (nodeEnd == fStart && fLength == 0) {			fCandidate= node;		}		Assert.isTrue(false, "Should not end here");		return true;	}