Example #1
0
        internal void GetTokens_TokenWithComment()
        {
            var lexer = new LispLexer(new TextSource("foo;bar"));
            var token = lexer.GetTokens().Single();

            Assert.Equal(LispTokenKind.Symbol, token.TokenKind);
            Assert.Equal("foo", token.Value);
        }
Example #2
0
        internal void GetTokens_String_ParsedCorrectly()
        {
            var lexer = new LispLexer(new TextSource("\"foobar\""));
            var token = lexer.GetTokens().Single();

            Assert.Equal("foobar", token.Value);
            Assert.Equal(LispTokenKind.String, token.TokenKind);
        }
Example #3
0
        internal void GetTokens_SingleTokenInputs(string input, LispTokenKind expectedTokenKind)
        {
            var lexer = new LispLexer(new TextSource(input));
            var token = lexer.GetTokens().Single();

            Assert.Equal(expectedTokenKind, token.TokenKind);
            Assert.Equal(input, token.Value);
        }
Example #4
0
        internal void GetTokens_MultipleTokensInInput()
        {
            const string input = "(add (mul 2 2) 2)";

            var lexer        = new LispLexer(new TextSource(input));
            var actualTokens = lexer.GetTokens().ToArray();

            var expectedTokens = new[] {
                new LispToken(LispTokenKind.LParen, "("),
                new LispToken(LispTokenKind.Symbol, "add"),
                new LispToken(LispTokenKind.LParen, "("),
                new LispToken(LispTokenKind.Symbol, "mul"),
                new LispToken(LispTokenKind.Number, "2"),
                new LispToken(LispTokenKind.Number, "2"),
                new LispToken(LispTokenKind.RParen, ")"),
                new LispToken(LispTokenKind.Number, "2"),
                new LispToken(LispTokenKind.RParen, ")"),
            };

            AssertTokens(expectedTokens, actualTokens);
        }