public Expression rewrite(Object paramObject, Translator paramTranslator) { Object[] arrayOfObject = new Object[4]; if (this.op_code == 0) { if (!pattern3.match(paramObject, arrayOfObject, 1)) {} } else { while (pattern4.match(paramObject, arrayOfObject, 0)) { if ((arrayOfObject[3] instanceof LList)) { break; } return paramTranslator.syntaxError("missing/invalid parameter list in " + getName()); } } return paramTranslator.syntaxError( "wrong number of arguments to " + getName() + "(opcode:" + this.op_code + ")"); Object localObject1 = (LList) arrayOfObject[3]; int j = ((LList) localObject1).size(); Type[] arrayOfType = new Type[j]; int i = 0; while (i < j) { localObject1 = (Pair) localObject1; arrayOfType[i] = paramTranslator.exp2Type((Pair) localObject1); localObject1 = (LList) ((Pair) localObject1).getCdr(); i += 1; } Type localType = paramTranslator.exp2Type(new Pair(arrayOfObject[2], null)); if (this.op_code == 0) { paramObject = new PrimProcedure(((Number) arrayOfObject[1]).intValue(), localType, arrayOfType); } for (; ; ) { return new QuoteExp(paramObject); Object localObject2 = null; paramObject = paramTranslator.exp2Type((Pair) paramObject); localObject1 = paramObject; if (paramObject != null) { localObject1 = ((Type) paramObject).getImplementationType(); } paramObject = localObject2; try { localObject1 = (ClassType) localObject1; paramObject = localObject1; ((ClassType) localObject1).getReflectClass(); paramObject = localObject1; if ((arrayOfObject[1] instanceof Pair)) { paramTranslator = (Pair) arrayOfObject[1]; if (paramTranslator.getCar() == "quote") { arrayOfObject[1] = ((Pair) paramTranslator.getCdr()).getCar(); } } paramObject = new PrimProcedure( this.op_code, (ClassType) paramObject, arrayOfObject[1].toString(), localType, arrayOfType); } catch (Exception localException) { if (paramObject != null) { break label403; } } } char c = 'e'; for (; ; ) { paramTranslator.error(c, "unknown class: " + arrayOfObject[0]); break; label403: c = 'w'; ((ClassType) paramObject).setExisting(false); } }