Beispiel #1
0
        public void AddTokenName_WhenNotFirstOccurrencesOfToken_ThrowsSemanticErrorException()
        {
            // Arrange:
            const string actualImage = "a";
            var          token       = new Token {
                TokenKind = TokenKind.String, Image = actualImage
            };

            var builder = new AstBuilder(null, null, null, _tracerMock.Object);

            builder.AddTokenName(token);

            // Act:
            void AddTokenName() => builder.AddTokenName(token);

            // Assert:
            Assert.Throws <SemanticErrorException>(AddTokenName);
        }
Beispiel #2
0
        public void SetTokenDefinition_GivenAToken_AddToTokenDefinition()
        {
            // Arrange:
            var          builder          = new AstBuilder(null, null, null, _tracerMock.Object);
            const string actualDefinition = "tkA";
            var          token            = new Token {
                TokenKind = TokenKind.String, Image = actualDefinition
            };

            // Act:
            builder.AddTokenName(token);
            builder.SetTokenDef(token);

            // Assert:
            Assert.That(builder.TokenDefinitions.Count, Is.EqualTo(1));
            Assert.That(builder.TokenDefinitions.First().Definition, Is.EqualTo(actualDefinition));
        }
Beispiel #3
0
        public void AddTokenName_WhenFirstOccurrencesOfToken_AddToTokenDefinition()
        {
            // Arrange:
            const string actualImage = "a";
            var          token       = new Token {
                TokenKind = TokenKind.String, Image = actualImage
            };

            var builder = new AstBuilder(null, null, null, _tracerMock.Object);

            // Act:
            builder.AddTokenName(token);

            // Assert:
            Assert.That(builder.TokenDefinitions.Count, Is.EqualTo(1));
            Assert.That(builder.TokenDefinitions.First().Image, Is.EqualTo(actualImage));
        }