Exemple #1
0
        public void CreateNameExpression()
        {
            var expr = new NameExpression("a");

            Assert.AreEqual("a", expr.Name);
            Assert.IsNull(expr.Type);
        }
Exemple #2
0
        public void MatchBoundNameExpression()
        {
            var expr = new NameExpression("a");
            var ctx = new Context<IExpression>();
            ctx.SetValue("a", new IntegerExpression(42));

            Assert.IsTrue(expr.Match(new IntegerExpression(42), ctx));
            Assert.IsFalse(expr.Match(new IntegerExpression(1), ctx));
        }
Exemple #3
0
        public void MatchUnboundNameExpression()
        {
            var expr = new NameExpression("a");
            var ctx = new Context<IExpression>();
            var cexpr = new IntegerExpression(42);

            Assert.IsTrue(expr.Match(cexpr, ctx));

            Assert.AreSame(cexpr, ctx.GetValue("a"));
        }