Example #1
0
        public void ODataDemo()
        {
            Parser parser = new ODataParser();
            var    expr1  = parser.Parse <Person, bool>("contains(Address/City,'ams') and FirstName gt 'm'");

            // same query, using another syntax, and so using another parser
            parser = new CompactParser();
            var expr2 = parser.Parse <Person, bool>("Address.City?ams&FirstName>m");

            Assert.AreEqual(expr1.ToString(), expr2.ToString());

            parser = new Parser(new Grammar(ScriptSyntax <DefaultSyntaxExtender> .Instance));
            var    args   = new { a = 10, b = DateTime.Now, c = "foo", d = 10.2 };
            var    expr3  = parser.WithReturnType <double>().Parse("a + day(b) + length(c) + d/2", args);
            var    fn     = expr3.Compile();
            double result = fn(args);

            Debug.WriteLine(result);
        }