コード例 #1
0
 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;
 }