public override void Evaluate(IScriptContext context) { typeExpr.Evaluate(context); Type type = (Type)context.Result; callExpr.Evaluate(context); object[] arguments = (object[])context.Result; context.Result = RuntimeHost.Binder.BindToConstructor(type, arguments); }
//TODO: Refactor public override void Evaluate(IScriptContext context) { constrExpr.Evaluate(context); Type type = (Type)context.Result; arrRank.Evaluate(context); int rank = (int)Convert.ChangeType(((object[])context.Result)[0], typeof(int), CultureInfo.CurrentCulture.NumberFormat); context.Result = Array.CreateInstance(type, rank); }
public override void Evaluate(IScriptContext context) { object leftVal, rightVal; left.Evaluate(context); leftVal = context.Result; context.Result = RuntimeHost.NullValue; ScriptTypeExpr name = (ScriptTypeExpr)right; name.Evaluate(context); rightVal = context.Result; context.Result = @operator.Evaluate(leftVal, rightVal); }