this.booleanEvaluator = new BooleanEvaluator( symbols );
this.booleanEvaluator = new BooleanEvaluator( symbols, variables );
	public Preprocessor(			PolishProject project,			File destinationDir,			HashMap variables,			HashMap symbols,			boolean verbose,			boolean backup,			boolean indent,			String newExt) 	{		this.debugManager = project.getDebugManager();		this.enableDebug = project.isDebugEnabled();		this.variables = variables;		if (symbols == null) {			symbols = new HashMap();		}		this.symbols = symbols;		this.verbose = verbose;		this.backup = backup;		this.indent = indent;		this.newExtension = newExt;		this.booleanEvaluator = new BooleanEvaluator( symbols );		this.destinationDir = destinationDir;		this.withinIfDirectives = new HashMap();		this.withinIfDirectives.put( "elifdef", Boolean.TRUE );		this.withinIfDirectives.put( "elifndef", Boolean.TRUE );		this.withinIfDirectives.put( "else", Boolean.TRUE );		this.withinIfDirectives.put( "elif", Boolean.TRUE );		this.withinIfDirectives.put( "endinclude", Boolean.TRUE );		this.withinIfDirectives.put( "endif", Boolean.TRUE );		this.withinIfDirectives.put( "debug", Boolean.TRUE );		this.withinIfDirectives.put( "mdebug", Boolean.TRUE );		this.ignoreDirectives = new HashMap();		this.ignoreDirectives.put( "endinclude", Boolean.TRUE );		this.supportedDirectives = new HashMap();		this.supportedDirectives.putAll( this.withinIfDirectives );		this.supportedDirectives.putAll( this.ignoreDirectives );		this.supportedDirectives.put( "if", Boolean.TRUE );		this.supportedDirectives.put( "ifdef", Boolean.TRUE );		this.supportedDirectives.put( "include", Boolean.TRUE );		this.supportedDirectives.put( "define", Boolean.TRUE );		this.supportedDirectives.put( "undefine", Boolean.TRUE );	}