position= findCurrentPosition(positions, event.getOffset());   if (position == null) {  if ((event.getText().length() == 0) && (findCurrentPosition(positions, event.getOffset()) != null) && (findCurrentPosition(positions, event.getOffset() + event.getLength()) != null)) { leave(true); }   } else {
if ((event.getText().length() == 0) && (findCurrentPosition(positions, event.getOffset()) != null) && (findCurrentPosition(positions, event.getOffset() + event.getLength()) != null)) {
	public void documentAboutToBeChanged(DocumentEvent event) {		IDocument document= event.getDocument();		Position[] positions= getPositions(document);		Position position= findCurrentEditablePosition(positions, event.getOffset());		// modification outside editable position		if (position == null) {			position= findCurrentPosition(positions, event.getOffset());			// modification outside any position						if (position == null) {				// check for destruction of constraints (spacing of at least 1)				if ((event.getText().length() == 0) &&					(findCurrentPosition(positions, event.getOffset()) != null) &&					(findCurrentPosition(positions, event.getOffset() + event.getLength()) != null))				{					leave(true);				}							// modification intersects non-editable position			} else {				leave(true);			}		// modification intersects editable position		} else {			// modificaction inside editable position			if (includes(position, event.getOffset(), event.getLength())) {				if (containsLineDelimiters(event.getText()))					leave(true);			// modificaction exceeds editable position			} else {				leave(true);			}		}	}