public override object Execute(List arguments, ValueEnvironment environment) { ValueEnvironment newenv; newenv = MakeEnvironment((List)arguments.First, environment); FSubrProgN progn = new FSubrProgN(); return(progn.Execute(arguments.Next, newenv)); }
public override object Execute(List arguments, ValueEnvironment environment) { if (Predicates.IsFalse(Machine.Evaluate(arguments.First, environment))) { List elseexpr = arguments.Next.Next; FSubrProgN progn = new FSubrProgN(); return(progn.Execute(elseexpr, environment)); } return(Machine.Evaluate(arguments.Next.First, environment)); }
public override object Execute(List arguments, ValueEnvironment env) { while (!Predicates.IsNil(arguments)) { List pair = (List)arguments.First; object condition; condition = pair.First; if (!Predicates.IsFalse(Machine.Evaluate(condition, env))) { FSubrProgN progn = new FSubrProgN(); return(progn.Execute(pair.Next, env)); } arguments = arguments.Next; } return(null); }
internal object ExecuteBody(ValueEnvironment environment) { FSubrProgN progn = new FSubrProgN(); return(progn.Execute(this.body, environment)); }