public void DefineVariableWithInitialValue() { Context context = new Context(); DefineVariableCommand expr = new DefineVariableCommand(null, "a", new ConstantExpression(1)); Assert.AreEqual(1, expr.Execute(context)); Assert.IsTrue(context.HasVariable("a")); Assert.AreEqual(1, context.GetValue("a")); Assert.AreEqual("a", expr.Name); Assert.IsNull(expr.TypeExpression); }
public void DefineVariableWithTypeAndInitialValue() { Context context = new Context(); IExpression typeexpr = new VariableExpression("List"); DefineVariableCommand expr = new DefineVariableCommand(typeexpr, "a", new ConstantExpression(1)); Assert.AreEqual(1, expr.Execute(context)); Assert.IsTrue(context.HasVariable("a")); Assert.AreEqual(1, context.GetValue("a")); Assert.AreEqual("a", expr.Name); Assert.AreEqual(typeexpr, expr.TypeExpression); }
public void ParseDefineVariable() { Parser parser = new Parser("var a;"); var result = parser.ParseCommand(); Assert.IsNotNull(result); Assert.That(result is DefineVariableCommand); DefineVariableCommand dvcmd = (DefineVariableCommand)result; Assert.AreEqual("a", dvcmd.Name); Assert.IsNull(dvcmd.Expression); }
public void ParseDefineVariableWithValue() { Parser parser = new Parser("var a = 1;"); var result = parser.ParseCommand(); Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(DefineVariableCommand)); DefineVariableCommand dvcmd = (DefineVariableCommand)result; Assert.AreEqual("a", dvcmd.Name); Assert.IsNotNull(dvcmd.Expression); Assert.IsInstanceOfType(dvcmd.Expression, typeof(ConstantExpression)); }
private ICommand ParseDefineVariableCommand(IExpression typeexpression, string name) { DefineVariableCommand command; if (this.TryParseToken("=", TokenType.Operator)) { command = new DefineVariableCommand(typeexpression, name, this.ParseExpression()); } else { command = new DefineVariableCommand(typeexpression, name); } this.ParseToken(";", TokenType.Separator); return(command); }