public void LeftHandSideExpression_should_match_dynamic_property_with_superfluous_whitespace()
        {
            var expected = new DynamicPropertyExpression(
            new IdentifierExpression("foo", new SourceRange(1, 3, 1, 1)),
            new StringLiteralExpression("bar", new SourceRange(7,5,1,7)),
            new SourceRange(1,13,1,1)
              );

              var match = EmdGrammar.LeftHandSideExpression.ShouldMatchAllOf("@foo [ 'bar' ]");

              match.Product.ShouldBeEquivalentTo(expected);
        }
        public void LeftHandSideExpression_should_match_multiple_dynamic_properties()
        {
            var expected = new DynamicPropertyExpression(
            new DynamicPropertyExpression(
              new IdentifierExpression("foo", new SourceRange(1, 3, 1, 1)),
              new StringLiteralExpression("bar", new SourceRange(5,5,1,5)),
              new SourceRange(1,10,1,1)
            ),
            new StringLiteralExpression("baz", new SourceRange(12,5,1,12)),
            new SourceRange(1,17,1,1)
              );

              var match = EmdGrammar.LeftHandSideExpression.ShouldMatchAllOf(
            //0....:....0....:....0....:....0....:....0....:....0....:....0
            @"@foo['bar']['baz']");

              match.Product.ShouldBeEquivalentTo(expected);
        }