Exemple #1
0
        public void LexText_ReturnsLexLeftMetaWhenFoundLeftMeta()
        {
            var lexer = new Lexer("{{ name }}");

            var nextLexFunction = LexFunctions.LexText(lexer);

            Assert.AreEqual(LexFunctions.LexLeftMeta, nextLexFunction);
        }
Exemple #2
0
        public void LexText_ReturnsNullWhenFoundEof()
        {
            var lexer = new Lexer("Hello world");

            var nextLexFunction = LexFunctions.LexText(lexer);

            Assert.IsNull(nextLexFunction);
        }
Exemple #3
0
        public void LexText_EmitsNoTextTokenWhenTextStartsWithLeftMeta()
        {
            var lexer = new Lexer("{{ name }}");

            LexFunctions.LexText(lexer);

            var result = lexer.Tokens.ToArray();

            Assert.AreEqual(0, result.Length);
        }
Exemple #4
0
        public void LexText_EmitsSingleTextTokenForTextPrecedingLeftMeta()
        {
            var lexer = new Lexer("Hello {{ name }}");

            LexFunctions.LexText(lexer);

            var tokens = lexer.Tokens.ToArray();

            Assert.AreEqual(1, tokens.Length);
            Assert.AreEqual(Lexeme.Text, tokens[0].Type);
            Assert.AreEqual("Hello ", tokens[0].Value);
        }
Exemple #5
0
        public void LexText_EmitsSingleTextTokenOnAllTextInput()
        {
            var lexer = new Lexer("Hello world");

            LexFunctions.LexText(lexer);

            var tokens = lexer.Tokens.ToArray();

            Assert.AreEqual(1, tokens.Length);
            Assert.AreEqual(Lexeme.Text, tokens[0].Type);
            Assert.AreEqual("Hello world", tokens[0].Value);
        }