public void execute()
	throws BuildException
	{
		ParserCompilerParameters params = new ParserCompilerParameters();
		
		
		params.setInputs(inputs);
		params.setRunMDA(runMDA);
		params.setDump(dump);
		params.setDumpFormat(dumpFormat);
		params.setUseEngine(useEngine);
		params.setUseSkin(useSkin);
		params.setQuietLevel(quietLevel);
		params.setUsePipeline(usePipeline);
		params.setPackageName(packageName);
		params.setParserName(parserName);
		params.setOutputStream(outputStream);
		params.setOutputFile(outputFile);
		params.setOutputType(outputType);
		params.setLogStream(logStream);
		params.setLogFile(logFile);
		params.setLogType(logType);
		params.setDumpStream(dumpStream);
		params.setDumpFile(dumpFile);
		params.setDumpOutputType(dumpOutputType);
		
		params.setAvoidRecompile(avoidRecompile);

		params.setWarnUselessNTs(isWarnUselessNTs);
		
		for(String customSwitch : customSwitches.keySet())
		{
			params.setCustomSwitch(customSwitch,customSwitches.get(customSwitch));
		}
		
		System.out.println("Compiling " + inputs.size() + " input file" + (inputs.size() == 1 ? "" : "s") + ":");
		for(Pair<String,Object> input : inputs) System.out.println("\t" + input.first());
		
		int errorlevel = 1;
		try
		{
			errorlevel = ParserCompiler.compile(params);
		}
		catch(Exception ex)
		{
			ex.printStackTrace();
		}
		
		if(errorlevel != 0) throw new BuildException("Error " + errorlevel);
	}