module orelang.operator.WhenOperator;
import orelang.operator.IOperator,
       orelang.Engine,
       orelang.Value;

class WhenOperator : IOperator {
  /**
   * Loop while the condition is true.
   */
  public Value call(Engine engine, Value[] args) {
    if (engine.eval(args[0]).getBool) {
      Value ret = null;

      foreach (arg; args[1..$]) {
        ret = engine.eval(arg);
      }

      return ret;
    } else {
      return new Value;
    }
  }
}