Parse member access after array element indexing
This commit is contained in:
parent
d781f8a469
commit
0b343873fc
@ -225,5 +225,17 @@ namespace Parser.Tests
|
|||||||
Assert.IsInstanceOf<IdentifierNameNode>(a.LeftOperand);
|
Assert.IsInstanceOf<IdentifierNameNode>(a.LeftOperand);
|
||||||
Assert.IsInstanceOf<IndirectMemberAccessNode>(a.RightOperand);
|
Assert.IsInstanceOf<IndirectMemberAccessNode>(a.RightOperand);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void ParseMemberAccessAfterElementAccess()
|
||||||
|
{
|
||||||
|
var text = "a(1).b";
|
||||||
|
var sut = CreateParser(text);
|
||||||
|
var actual = sut.ParseExpression();
|
||||||
|
Assert.IsInstanceOf<MemberAccessNode>(actual);
|
||||||
|
var m = (MemberAccessNode) actual;
|
||||||
|
Assert.IsInstanceOf<FunctionCallExpressionNode>(m.LeftOperand);
|
||||||
|
Assert.IsInstanceOf<IdentifierNameNode>(m.RightOperand);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -297,7 +297,8 @@ namespace Parser
|
|||||||
break;
|
break;
|
||||||
case TokenKind.Dot: // member access
|
case TokenKind.Dot: // member access
|
||||||
if (expression is IdentifierNameNode
|
if (expression is IdentifierNameNode
|
||||||
|| expression is MemberAccessNode)
|
|| expression is MemberAccessNode
|
||||||
|
|| expression is FunctionCallExpressionNode)
|
||||||
{
|
{
|
||||||
var dot = EatToken();
|
var dot = EatToken();
|
||||||
var member = ParseMember();
|
var member = ParseMember();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user