private static void AssertParse(string input, Expression expectation)
        {
            var source   = input;
            var parser   = new SemiFullParser();
            var expr     = parser.Parse(source);
            var expected = expectation;

            expr.ShouldDeepEqual(expected);
        }
        private static void AssertThrows <TEx>(string source) where TEx : Exception
        {
            var parser = new SemiFullParser();

            Assert.Throws <TEx>(() =>
            {
                var expression = parser.Parse(source);
                return(expression);
            });
        }