Exemple #1
0
        public override object Execute(Func <object>[] args)
        {
            var result = args[0]();

            ScopeManager.Add(ReturnVarName, result);
            return(result);
        }
Exemple #2
0
        public override object Execute(Func <object>[] args)
        {
            var arg1 = args[0]();

            if (arg1 is string varName)
            {
                var varValue = args[1]();

                ScopeManager.Add(varName, varValue);
                return(null);
            }

            throw new InvalidOperationException($"Expected 1st arg to be an identifier but it was '{arg1}'");
        }
Exemple #3
0
        private void InitialiseLocals(string[] parameters, object[] arguments)
        {
            var vars = new Dictionary <string, object>();

            for (var i = 0; i < parameters.Length; i++)
            {
                vars.Add(parameters[i], arguments[i]);
            }

            ScopeManager.EnterScope();

            foreach (var variable in vars)
            {
                ScopeManager.Add(variable.Key, variable.Value);
            }
        }