public void DefineAndEvaluateDotExpression() { DotExpression expr = new DotExpression(new ConstantExpression(new MockObject()), "foo", null); object result = expr.Evaluate(null); Assert.IsNotNull(result); Assert.AreEqual("foo", result); }
public void DefineAndEvaluateDotExpressionWithArguments() { List<IExpression> arguments = new List<IExpression>(); arguments.Add(new ConstantExpression(1)); arguments.Add(new ConstantExpression(2)); DotExpression expr = new DotExpression(new ConstantExpression(new MockObject()), "foo", arguments); object result = expr.Evaluate(null); Assert.IsNotNull(result); Assert.AreEqual("foo:1:2", result); }
private IExpression ParseTermExpression() { IExpression expression = this.ParseSimpleTermExpression(); while (this.TryParse(TokenType.Operator, ".")) { this.lexer.NextToken(); string name = this.ParseName(); List<IExpression> arguments = null; if (this.TryParse(TokenType.Separator, "(")) arguments = this.ParseArgumentList(); expression = new DotExpression(expression, name, arguments); } return expression; }