Ejemplo n.º 1
0
        public void Execute(IContext context)
        {
            BindingEnvironment env = new BindingEnvironment(context);
            IList<IType> bases = null;

            if (this.baseExpressions != null && this.baseExpressions.Count > 0)
            {
                bases = new List<IType>();

                foreach (var expr in this.baseExpressions)
                    bases.Add((IType)expr.Evaluate(context));
            }

            DefinedClass klass = new DefinedClass(this.name, bases, context);
            this.body.Execute(klass);
            foreach (var name in env.GetNames())
            {
                var value = env.GetValue(name);
                var deffunc = value as DefinedFunction;

                if (deffunc != null)
                    klass.SetMethod(deffunc.Name, deffunc);
            }

            klass.SetValue("__doc__", this.doc);

            context.SetValue(this.name, klass);
        }
Ejemplo n.º 2
0
        public void Execute(IContext context)
        {
            BindingEnvironment env   = new BindingEnvironment(context);
            IList <IType>      bases = null;

            if (this.baseExpressions != null && this.baseExpressions.Count > 0)
            {
                bases = new List <IType>();

                foreach (var expr in this.baseExpressions)
                {
                    bases.Add((IType)expr.Evaluate(context));
                }
            }

            DefinedClass klass = new DefinedClass(this.name, bases, context);

            this.body.Execute(klass);
            foreach (var name in env.GetNames())
            {
                var value   = env.GetValue(name);
                var deffunc = value as DefinedFunction;

                if (deffunc != null)
                {
                    klass.SetMethod(deffunc.Name, deffunc);
                }
            }

            klass.SetValue("__doc__", this.doc);

            context.SetValue(this.name, klass);
        }
Ejemplo n.º 3
0
        public void GetNames()
        {
            BindingEnvironment environment = new BindingEnvironment();

            environment.SetValue("one", 1);
            environment.SetValue("two", 2);

            var result = environment.GetNames();

            Assert.AreEqual(2, result.Count);
            Assert.IsTrue(result.Contains("one"));
            Assert.IsTrue(result.Contains("two"));
        }
Ejemplo n.º 4
0
        public void GetNames()
        {
            BindingEnvironment environment = new BindingEnvironment();

            environment.SetValue("one", 1);
            environment.SetValue("two", 2);

            var result = environment.GetNames();

            Assert.AreEqual(2, result.Count);
            Assert.IsTrue(result.Contains("one"));
            Assert.IsTrue(result.Contains("two"));
        }