diff --git a/Parser.Tests/MParserShould.cs b/Parser.Tests/MParserShould.cs index 840aaca..4864b85 100644 --- a/Parser.Tests/MParserShould.cs +++ b/Parser.Tests/MParserShould.cs @@ -225,5 +225,17 @@ namespace Parser.Tests Assert.IsInstanceOf(a.LeftOperand); Assert.IsInstanceOf(a.RightOperand); } + + [Test] + public void ParseMemberAccessAfterElementAccess() + { + var text = "a(1).b"; + var sut = CreateParser(text); + var actual = sut.ParseExpression(); + Assert.IsInstanceOf(actual); + var m = (MemberAccessNode) actual; + Assert.IsInstanceOf(m.LeftOperand); + Assert.IsInstanceOf(m.RightOperand); + } } } \ No newline at end of file diff --git a/Parser/MParser.cs b/Parser/MParser.cs index 1b0df26..807cd29 100644 --- a/Parser/MParser.cs +++ b/Parser/MParser.cs @@ -297,7 +297,8 @@ namespace Parser break; case TokenKind.Dot: // member access if (expression is IdentifierNameNode - || expression is MemberAccessNode) + || expression is MemberAccessNode + || expression is FunctionCallExpressionNode) { var dot = EatToken(); var member = ParseMember();