void evaluate(final String snippet) {
protected void evaluate(final String snippet) {
	void evaluate(final String snippet) {		if (fAttempts < 200 && getThread() == null) {			// wait for our main thread to suspend			fAttempts++;			try {				Thread.sleep(50);			} catch (InterruptedException e) {			}			Runnable r = new Runnable() {				public void run() {					evaluate(snippet);				}			};			getShell().getDisplay().asyncExec(r);			return;		}		if (getThread() == null) {			IStatus status = new Status(IStatus.ERROR, JavaPlugin.getPluginId(), JavaStatusConstants.INTERNAL_ERROR, 				SnippetMessages.getString("SnippetEditor.error.nocontext"), null); //$NON-NLS-1$			ErrorDialog.openError(getShell(), SnippetMessages.getString("SnippetEditor.error.evaluating"), null, status); //$NON-NLS-1$			evaluationEnds();			return;		}		try {			getEvaluationEngine().evaluate(snippet,getThread(), this);		} catch (DebugException e) {			ErrorDialog.openError(getShell(), SnippetMessages.getString("SnippetEditor.error.evaluating"), null, e.getStatus()); //$NON-NLS-1$			evaluationEnds();		}	}