コード例 #1
0
        public void EvaluateTypeConstant()
        {
            Machine machine = new Machine();

            DoubleColonExpression expression = new DoubleColonExpression(new ConstantExpression(typeof(TokenType)), "Name");

            var result = expression.Evaluate(machine.RootContext);

            Assert.IsNotNull(result);
            Assert.AreEqual(TokenType.Name, result);
        }
コード例 #2
0
        public void EvaluateConstant()
        {
            Machine machine = new Machine();

            machine.ExecuteText("module MyModule; FOO = 3; end");

            DoubleColonExpression expression = new DoubleColonExpression(new NameExpression("MyModule"), "FOO");

            var result = expression.Evaluate(machine.RootContext);

            Assert.IsNotNull(result);
            Assert.AreEqual(3, result);
        }
コード例 #3
0
        public void EvaluateUndefinedConstant()
        {
            Machine machine = new Machine();

            machine.ExecuteText("module MyModule;end");

            DoubleColonExpression expression = new DoubleColonExpression(new NameExpression("MyModule"), "FOO");

            try
            {
                expression.Evaluate(machine.RootContext);
                Assert.Fail();
            }
            catch (Exception ex)
            {
                Assert.IsInstanceOfType(ex, typeof(NameError));
                Assert.AreEqual("unitialized constant MyModule::FOO", ex.Message);
            }
        }