package builtin.mint;
import builtin.BuiltinSub;
import gui.Interpreter;
import gui.MintException;
import gui.Pointer;
import gui.PointerTools;
import gui.SmartList;
/**
*
* @author Oliver Chu
*/
public class Eval extends BuiltinSub {
@Override
public Pointer apply(SmartList<Pointer> args) throws MintException {
String code = PointerTools.dereferenceString(args.get(0));
Interpreter interp = PointerTools.dereferenceInterpreter(args.get(1));
SmartList<SmartList<Pointer>> pointerLists =
interp.loadProgram(code, true);
return interp.evalExpression(pointerLists.get(0), 0);
}
}