예제 #1
0
        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());
        }
예제 #2
0
        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());
        }