public static Expression makeWhile( Object paramObject1, Object paramObject2, Compilation paramCompilation) { Expression[] arrayOfExpression = new Expression[1]; LetExp localLetExp = new LetExp(arrayOfExpression); Declaration localDeclaration = localLetExp.addDeclaration("%do%loop"); ApplyExp localApplyExp = new ApplyExp(new ReferenceExp(localDeclaration), noExpressions); LambdaExp localLambdaExp = new LambdaExp(); paramCompilation.push(localLambdaExp); localLambdaExp.body = new IfExp( paramCompilation.parse(paramObject1), new BeginExp(paramCompilation.parse(paramObject2), localApplyExp), QuoteExp.voidExp); localLambdaExp.setName("%do%loop"); paramCompilation.pop(localLambdaExp); arrayOfExpression[0] = localLambdaExp; localDeclaration.noteValue(localLambdaExp); localLetExp.setBody(new ApplyExp(new ReferenceExp(localDeclaration), noExpressions)); return localLetExp; }