Example #1
0
        public void Can_Define_Variable()
        {
            var syms = new SymbolsGlobal();

            syms.DefineVariable("a");

            Assert.IsTrue(syms.Contains("a"));
        }
Example #2
0
        public void Can_Define_Constant()
        {
            var syms = new SymbolsGlobal();

            syms.DefineConstant("MIN", LTypes.Number, 10);
            Assert.IsTrue(syms.Contains("MIN"));
            Assert.IsTrue(syms.GetSymbol("MIN").Category == SymbolCategory.Const);
            Assert.AreEqual(syms.GetSymbol <SymbolConstant>("MIN").Value, 10);
        }
Example #3
0
        public void Can_Get_Var_Symbol()
        {
            var syms = new SymbolsGlobal();

            syms.DefineVariable("a");
            var sym = syms.GetSymbol("a");

            Assert.AreEqual(sym.Name, "a");
            Assert.AreEqual(sym.DataType, LTypes.Object);
            Assert.AreEqual(sym.Category, "var");
        }
Example #4
0
        private ISymbols GetNested()
        {
            var symg = new SymbolsGlobal();

            symg.DefineVariable("a");
            symg.DefineVariable("c");
            symg.DefineFunction(SymbolTestsHelper.ToFunction("add", 2, new string[] { "a", "b" }, LTypes.Object));

            var symn = new SymbolsFunction("add", symg);

            symn.DefineVariable("a");
            symn.DefineVariable("b");
            return(symn);
        }
Example #5
0
        public void Can_Get_Function_Symbol()
        {
            var syms = new SymbolsGlobal();

            syms.DefineFunction(SymbolTestsHelper.ToFunction("add", 2, new string[] { "a", "b" }, LTypes.Object));
            var sym = syms.GetSymbol <SymbolFunction>("add");

            Assert.AreEqual(sym.Name, "add");
            Assert.AreEqual(sym.DataType.TypeVal, LTypes.Function.TypeVal);
            Assert.AreEqual(sym.Category, "func");
            Assert.AreEqual(sym.Meta.TotalArgs, 2);
            Assert.AreEqual(sym.Meta.Arguments[0].Name, "a");
            Assert.AreEqual(sym.Meta.Arguments[1].Name, "b");
            Assert.AreEqual(sym.Meta.ReturnType, LTypes.Object);
        }