public void Can_Define_Variable() { var syms = new SymbolsGlobal(); syms.DefineVariable("a"); Assert.IsTrue(syms.Contains("a")); }
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); }
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"); }
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); }
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); }