e.printStackTrace();
if (global.debug) e.printStackTrace();
    public void apply() {	if (global.target == global.TARGET_MSIL) {	    currModule = getPackage("prog", true);	    main = (MethodBuilder) currModule.GetMethod("Main", Type.EmptyTypes);	    if (main == null) {		main = currModule.DefineGlobalMethod		    ("Main", MethodAttributes.Static,		     Type.GetType("System.Void"),		     new Type[] {Type.GetType("System.String[]")} );		main.DefineParameter(0, 0L, "args");	    }	    // create mappings from Symbols to MSIL Types	    tc.traverse(global.units);	    try {                for (int i = 0; i < global.units.length; i++) {                    apply(global.units[i]);                }	    } catch (Throwable e) {		//log("params: " + params);		//log("locals: " + locals);		if (code != null) {		    MethodBase method = code.owner;		    log("Processing method " + method.DeclaringType +			"::" +method.Name);		}		e.printStackTrace();		throw (Error) e;	    }	    tc.createTypes();	    main.GetILGenerator().Emit(OpCodes.Ret);	    ((AssemblyBuilder)currModule.Assembly).SetEntryPoint(main);	    try {		Iterator iter = assemblies.values().iterator();		while (iter.hasNext()) {		    AssemblyBuilder assem = (AssemblyBuilder) iter.next();// 		    log("Types defined in assembly: " + assem.FullName);// 		    Type[] types = assem.GetTypes();// 		    for (int i = 0; i < types.length; i++)// 			log("\t" + types[i]);		    assem.Save(assem.FullName + ".il");		}	    }	    catch (IOException e) { 		e.printStackTrace(); 	    }	}    }