All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.snapscript.tree.SuspendStatement Maven / Gradle / Ivy

The newest version!
package org.snapscript.tree;

import org.snapscript.core.Execution;
import org.snapscript.core.result.Result;
import org.snapscript.core.scope.Scope;
import org.snapscript.core.resume.Resume;
import org.snapscript.core.resume.Yield;

public abstract class SuspendStatement extends Execution implements Resume {

   protected Result suspend(Scope scope, Result result, Resume child, T value) throws Exception {
      Resume parent = suspend(result, child, value);
      Yield yield = result.getValue();
      Object object = yield.getValue();

      if(result.isAwait()) {
         return Result.getAwait(object, scope, parent);
      }
      return Result.getYield(object, scope, parent);
   }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy