示例#1
0
        public void SyntaxNode_WhenToStringCalled_ReturnsCorrectString()
        {
            // Arranged:
            var stmtNodeMock = new Mock <IStatementNode>();

            stmtNodeMock.Setup(node => node.ToString()).Returns(() => "<S> ::= \"a\" .");
            var syntaxNode = new SyntaxNode(new Token(), _tracer);

            syntaxNode.AppendStatement(stmtNodeMock.Object);

            // Act:
            var actual = syntaxNode.ToString();

            // Assert:
            Assert.That(actual, Is.EqualTo("<S> ::= \"a\" .\r\n"));
        }
示例#2
0
        public ISyntaxNode BuildTree()
        {
            var syntaxNode = new SyntaxNode(new Token(), _tracer)
            {
                PreActionNode = string.IsNullOrEmpty(PreActionName)
               ? null
               : new ActionNode(new Token(TokenKind.Action, PreActionName), _tracer),
                PostActionNode = string.IsNullOrEmpty(PostActionName)
               ? null
               : new ActionNode(new Token(TokenKind.Action, PostActionName), _tracer)
            };

            foreach (var stmt in _statements)
            {
                var stmtNode = stmt.BuildTree();
                syntaxNode.AppendStatement(stmtNode);
            }

            return(syntaxNode);
        }