示例#1
0
        public override Result Execute(IRuntime runtime)
        {
            var result = new LoplaList();
            var k      = 0;

            foreach (var baseMnemonic in Values)
            {
                var resultData = runtime.EvaluateCodeBlock(baseMnemonic).Get(runtime);
                result.Set(k, resultData);
                k++;
            }

            return(new Result(result));
        }
示例#2
0
        private Result Args(Mnemonic expression, IRuntime runtime)
        {
            var ll = new LoplaList();

            if (args != null)
            {
                foreach (var a in args)
                {
                    ll.Add(new String(a));
                }
            }

            return(new Result(ll));
        }
示例#3
0
        private Result Functions(Mnemonic expression, IRuntime runtime)
        {
            var listOfLibs = new LoplaList();

            foreach (var registeredMethod in runtime.GetRegisteredMethods())
            {
                var methodLine = new LoplaList();
                methodLine.Add(new String(registeredMethod.Key));
                foreach (var argument in registeredMethod.Value)
                {
                    methodLine.Add(new String(argument));
                }
                listOfLibs.Add(methodLine);
            }

            return(new Result(listOfLibs));
        }
示例#4
0
        private Result FunctionInfo(Mnemonic expression, IRuntime runtime)
        {
            var functionName = GetArgument <String>("functionName", runtime);

            var me = runtime
                     .GetRegisteredMethods()
                     .Where(m => m.Key == functionName.Value)
                     .Select(m => m.Value)
                     .FirstOrDefault();

            var functionInformation = new LoplaList();

            if (me != null)
            {
                functionInformation.Add(new String(functionName.Value));
                foreach (var arg in me)
                {
                    functionInformation.Add(new String(arg));
                }
            }

            return(new Result(functionInformation));
        }