public void Parse_ParenthesizedExpression_ReturnsCorrectTree() { string text = "(1+2)*5"; ExpressionTree tree = ExpressionTree.Parse(text); AssertingEnumerator enumerator = new AssertingEnumerator(tree.Root.Expression); // * // / \ // + 5 // / \ // 1 2 enumerator.AssertNode(NodeKind.BinaryExpression); enumerator.AssertNode(NodeKind.ParenthesizedExpression); enumerator.AssertToken(NodeKind.OpenParenthesisToken, TestingHelper.GetNodeKindText(NodeKind.OpenParenthesisToken)); enumerator.AssertNode(NodeKind.BinaryExpression); enumerator.AssertNode(NodeKind.LiteralExpression); enumerator.AssertToken(NodeKind.NumberToken, "1"); enumerator.AssertToken(NodeKind.PlusToken, TestingHelper.GetNodeKindText(NodeKind.PlusToken)); enumerator.AssertNode(NodeKind.LiteralExpression); enumerator.AssertToken(NodeKind.NumberToken, "2"); enumerator.AssertToken(NodeKind.CloseParenthesisToken, TestingHelper.GetNodeKindText(NodeKind.CloseParenthesisToken)); enumerator.AssertToken(NodeKind.StarToken, TestingHelper.GetNodeKindText(NodeKind.StarToken)); enumerator.AssertNode(NodeKind.LiteralExpression); enumerator.AssertToken(NodeKind.NumberToken, "5"); }
public void Parse_PlusExpression_ReturnsCorrectTree() { string text = "1+2"; ExpressionTree tree = ExpressionTree.Parse(text); AssertingEnumerator enumerator = new AssertingEnumerator(tree.Root.Expression); // + // / \ // 1 2 enumerator.AssertNode(NodeKind.BinaryExpression); enumerator.AssertNode(NodeKind.LiteralExpression); enumerator.AssertToken(NodeKind.NumberToken, "1"); enumerator.AssertToken(NodeKind.PlusToken, TestingHelper.GetNodeKindText(NodeKind.PlusToken)); enumerator.AssertNode(NodeKind.LiteralExpression); enumerator.AssertToken(NodeKind.NumberToken, "2"); }
public void Parse_AssignmentExpression_ReturnsCorrectTree() { string text = "a = 1"; ExpressionTree tree = ExpressionTree.Parse(text); AssertingEnumerator enumerator = new AssertingEnumerator(tree.Root.Expression); // = // / \ // a 1 enumerator.AssertNode(NodeKind.AssignmentExpression); enumerator.AssertNode(NodeKind.IdentifierExpression); enumerator.AssertToken(NodeKind.IdentifierToken, "a"); enumerator.AssertToken(NodeKind.EqualsToken, TestingHelper.GetNodeKindText(NodeKind.EqualsToken)); enumerator.AssertNode(NodeKind.LiteralExpression); enumerator.AssertToken(NodeKind.NumberToken, "1"); }