evalContext.addVariable("sourceCompliance", javaProject.getOption(JavaCore.COMPILER_SOURCE, true));
evalContext.addVariable("sourceLevel", javaProject.getOption(JavaCore.COMPILER_SOURCE, true));
	private boolean matches(ICompilationUnit cunit) {		if (fStatus != null) {			return fStatus.booleanValue();		}		IConfigurationElement[] children= fConfigurationElement.getChildren(ExpressionTagNames.ENABLEMENT);		if (children.length == 1) {			try {				ExpressionConverter parser= ExpressionConverter.getDefault();				Expression expression= parser.perform(children[0]);				EvaluationContext evalContext= new EvaluationContext(null, cunit);				evalContext.addVariable("compilationUnit", cunit); //$NON-NLS-1$				IJavaProject javaProject= cunit.getJavaProject();				String[] natures= javaProject.getProject().getDescription().getNatureIds();				evalContext.addVariable("projectNatures", Arrays.asList(natures)); //$NON-NLS-1$				evalContext.addVariable("sourceCompliance", javaProject.getOption(JavaCore.COMPILER_SOURCE, true)); //$NON-NLS-1$				fLastResult= !(expression.evaluate(evalContext) != EvaluationResult.TRUE);				return fLastResult;			} catch (CoreException e) {				JavaPlugin.log(e);			}		}		fStatus= Boolean.FALSE;		return false;	}