public override AType Execute(AType right, AType left, Aplus environment) { // Environment is required! Assert.NotNull(environment); Value.CheckArgument <ValueInContext>(right); Value.CheckArgument <ValueInContext>(left); // get the contextparts, (context, variablename) string pair string[] contextparts = VariableHelper.CreateContextParts(left.asString, right.asString); Func <AType> method = VariableHelper.BuildVariableAccessMethod(environment, contextparts).Compile(); return(method()); }
public override AType Execute(AType argument, Aplus environment) { // Environment is required! Assert.NotNull(environment); CheckArgument <Value>(argument); // Get the context parts, (context, variablename) string pairs string[] contextParts = VariableHelper.CreateContextParts(environment.CurrentContext, argument.asString); // Build the method Func <AType> method = VariableHelper.BuildVariableAccessMethod(environment, contextParts).Compile(); return(method()); }