コード例 #1
0
ファイル: CompositeCommand.cs プロジェクト: ajlopez/AjSharp
        public void Execute(IBindingEnvironment environment)
        {
            LocalBindingEnvironment local = new LocalBindingEnvironment(environment);

            foreach (ICommand command in this.commands)
            {
                if (Machine.CurrentFunctionStatus.Returned)
                    return;

                command.Execute(local);
            }
        }
コード例 #2
0
        public void SetUndefinedValueUsingTwoLocalEnviroments()
        {
            BindingEnvironment environment = new BindingEnvironment();

            LocalBindingEnvironment local  = new LocalBindingEnvironment(environment);
            LocalBindingEnvironment local2 = new LocalBindingEnvironment(local);

            local2.SetValue("one", 1);

            Assert.AreEqual(1, local.GetValue("one"));
            Assert.AreEqual(1, local2.GetValue("one"));
            Assert.AreEqual(1, environment.GetValue("one"));
        }
コード例 #3
0
        public void SetValueThruLocalEnviroment()
        {
            BindingEnvironment environment = new BindingEnvironment();

            environment.SetValue("one", 0);

            LocalBindingEnvironment local = new LocalBindingEnvironment(environment);

            local.SetValue("one", 1);

            Assert.AreEqual(1, local.GetValue("one"));
            Assert.AreEqual(1, environment.GetValue("one"));
        }
コード例 #4
0
        public void DefineAndSetGlobalValueThruLocalEnvironment()
        {
            Machine machine = new Machine();
            BindingEnvironment environment = new BindingEnvironment();
            LocalBindingEnvironment local = new LocalBindingEnvironment(environment);

            local.DefineGlobal("global");

            local.SetValue("global", 100);

            Assert.AreEqual(100, local.GetValue("global"));
            Assert.AreEqual(100, environment.GetValue("global"));
            Assert.AreEqual(100, machine.Environment.GetValue("global"));
        }
コード例 #5
0
        public void DefineAndSetGlobalValueThruLocalEnvironment()
        {
            Machine                 machine     = new Machine();
            BindingEnvironment      environment = new BindingEnvironment();
            LocalBindingEnvironment local       = new LocalBindingEnvironment(environment);

            local.DefineGlobal("global");

            local.SetValue("global", 100);

            Assert.AreEqual(100, local.GetValue("global"));
            Assert.AreEqual(100, environment.GetValue("global"));
            Assert.AreEqual(100, machine.Environment.GetValue("global"));
        }
コード例 #6
0
        public void Execute(IBindingEnvironment environment)
        {
            LocalBindingEnvironment local = new LocalBindingEnvironment(environment);

            foreach (ICommand command in this.commands)
            {
                if (Machine.CurrentFunctionStatus.Returned)
                {
                    return;
                }

                command.Execute(local);
            }
        }
コード例 #7
0
ファイル: ForCommand.cs プロジェクト: ajlopez/AjSharp
        public void Execute(IBindingEnvironment environment)
        {
            IBindingEnvironment newenv = new LocalBindingEnvironment(environment);

            if (this.initialCommand != null)
                this.initialCommand.Execute(newenv);

            while (this.condition == null || Predicates.IsTrue(this.condition.Evaluate(newenv)))
            {
                if (this.body != null)
                    this.body.Execute(newenv);
                if (this.endCommand != null)
                    this.endCommand.Execute(newenv);
            }
        }
コード例 #8
0
ファイル: ForEachCommand.cs プロジェクト: ajlopez/AjSharp
        public void Execute(IBindingEnvironment environment)
        {
            IBindingEnvironment newenv = environment;

            if (this.localvar)
            {
                newenv = new LocalBindingEnvironment(environment);
                newenv.SetLocalValue(this.name, null);
            }

            foreach (object result in (IEnumerable)this.expression.Evaluate(newenv))
            {
                newenv.SetValue(this.name, result);
                this.command.Execute(newenv);
            }
        }
コード例 #9
0
        public void Execute(IBindingEnvironment environment)
        {
            IBindingEnvironment newenv = environment;

            if (this.localvar)
            {
                newenv = new LocalBindingEnvironment(environment);
                newenv.SetLocalValue(this.name, null);
            }

            foreach (object result in (IEnumerable)this.expression.Evaluate(newenv))
            {
                newenv.SetValue(this.name, result);
                this.command.Execute(newenv);
            }
        }
コード例 #10
0
        public void ExecuteVarCommandWithNullExpression()
        {
            VarCommand command = new VarCommand("foo", null);

            IBindingEnvironment environment = new BindingEnvironment();
            IBindingEnvironment local       = new LocalBindingEnvironment(environment);
            IBindingEnvironment local2      = new LocalBindingEnvironment(local);

            command.Execute(local2);

            Assert.IsTrue(local2.ContainsName("foo"));
            Assert.IsFalse(local.ContainsName("foo"));
            Assert.IsFalse(environment.ContainsName("foo"));

            Assert.IsNull(local2.GetValue("foo"));
        }
コード例 #11
0
        public void ExecuteVarCommand()
        {
            VarCommand command = new VarCommand("foo", new ConstantExpression(10));

            IBindingEnvironment environment = new BindingEnvironment();
            IBindingEnvironment local       = new LocalBindingEnvironment(environment);
            IBindingEnvironment local2      = new LocalBindingEnvironment(local);

            command.Execute(local2);

            Assert.IsTrue(local2.ContainsName("foo"));
            Assert.IsFalse(local.ContainsName("foo"));
            Assert.IsFalse(environment.ContainsName("foo"));

            Assert.AreEqual(10, local2.GetValue("foo"));
        }
コード例 #12
0
        public void SetValueThruLocalAndNormalEnviroment()
        {
            BindingEnvironment      parent   = new BindingEnvironment();
            LocalBindingEnvironment toplocal = new LocalBindingEnvironment(parent);

            toplocal.SetLocalValue("one", 0);

            BindingEnvironment environment = new BindingEnvironment(toplocal);

            LocalBindingEnvironment local = new LocalBindingEnvironment(environment);

            local.SetValue("one", 1);

            Assert.AreEqual(1, local.GetValue("one"));
            Assert.AreEqual(1, environment.GetValue("one"));
            Assert.AreEqual(1, toplocal.GetValue("one"));
            Assert.IsNull(parent.GetValue("one"));
        }
コード例 #13
0
        public void Execute(IBindingEnvironment environment)
        {
            IBindingEnvironment newenv = new LocalBindingEnvironment(environment);

            if (this.initialCommand != null)
            {
                this.initialCommand.Execute(newenv);
            }

            while (this.condition == null || Predicates.IsTrue(this.condition.Evaluate(newenv)))
            {
                if (this.body != null)
                {
                    this.body.Execute(newenv);
                }
                if (this.endCommand != null)
                {
                    this.endCommand.Execute(newenv);
                }
            }
        }
コード例 #14
0
        public void SetValueThruLocalEnviroment()
        {
            BindingEnvironment environment = new BindingEnvironment();
            environment.SetValue("one", 0);

            LocalBindingEnvironment local = new LocalBindingEnvironment(environment);
            local.SetValue("one", 1);

            Assert.AreEqual(1, local.GetValue("one"));
            Assert.AreEqual(1, environment.GetValue("one"));
        }
コード例 #15
0
        public void SetValueThruLocalAndNormalEnviroment()
        {
            BindingEnvironment parent = new BindingEnvironment();
            LocalBindingEnvironment toplocal = new LocalBindingEnvironment(parent);

            toplocal.SetLocalValue("one", 0);

            BindingEnvironment environment = new BindingEnvironment(toplocal);

            LocalBindingEnvironment local = new LocalBindingEnvironment(environment);
            local.SetValue("one", 1);

            Assert.AreEqual(1, local.GetValue("one"));
            Assert.AreEqual(1, environment.GetValue("one"));
            Assert.AreEqual(1, toplocal.GetValue("one"));
            Assert.IsNull(parent.GetValue("one"));
        }
コード例 #16
0
        public void SetUndefinedValueUsingTwoLocalEnviroments()
        {
            BindingEnvironment environment = new BindingEnvironment();

            LocalBindingEnvironment local = new LocalBindingEnvironment(environment);
            LocalBindingEnvironment local2 = new LocalBindingEnvironment(local);

            local2.SetValue("one", 1);

            Assert.AreEqual(1, local.GetValue("one"));
            Assert.AreEqual(1, local2.GetValue("one"));
            Assert.AreEqual(1, environment.GetValue("one"));
        }