Esempio n. 1
0
 public void CreateWithString()
 {
     using (Lexer lexer = new Lexer("text"))
     {
         Assert.IsNotNull(lexer);
     }
 }
Esempio n. 2
0
        public void ProcessEndOfLine()
        {
            Lexer lexer = new Lexer("\r\n");

            Token token;

            token = lexer.NextToken();

            Assert.IsNotNull(token);
            Assert.AreEqual(TokenType.EndOfLine, token.TokenType);

            token = lexer.NextToken();

            Assert.IsNull(token);
        }
Esempio n. 3
0
        public void ProcessClassVariableName()
        {
            Lexer lexer = new Lexer("@@name");

            Token token;

            token = lexer.NextToken();

            Assert.IsNotNull(token);
            Assert.AreEqual(TokenType.Name, token.TokenType);
            Assert.AreEqual("@@name", token.Value);

            token = lexer.NextToken();

            Assert.IsNull(token);
        }
Esempio n. 4
0
        public void ProcessBoolean()
        {
            Lexer lexer = new Lexer("true false");

            Token token;

            token = lexer.NextToken();

            Assert.IsNotNull(token);
            Assert.AreEqual(TokenType.Boolean, token.TokenType);
            Assert.AreEqual("true", token.Value);

            token = lexer.NextToken();

            Assert.IsNotNull(token);
            Assert.AreEqual(TokenType.Boolean, token.TokenType);
            Assert.AreEqual("false", token.Value);

            token = lexer.NextToken();

            Assert.IsNull(token);
        }
Esempio n. 5
0
        public void RaiseIfOnlyAts()
        {
            Lexer lexer = new Lexer("@@");

            Token token;

            token = lexer.NextToken();
        }
Esempio n. 6
0
        public void ProcessStringWithBackslashes()
        {
            Lexer lexer = new Lexer("\"\\\\\\r\\n\\t\\f\\s\\v\\\\\"");

            Token token;

            token = lexer.NextToken();

            Assert.IsNotNull(token);
            Assert.AreEqual(TokenType.String, token.TokenType);
            Assert.AreEqual("\\\r\n\t\f \v\\", token.Value);

            token = lexer.NextToken();

            Assert.IsNull(token);
        }
Esempio n. 7
0
        public void ProcessString()
        {
            Lexer lexer = new Lexer("\"foo\"");

            Token token;

            token = lexer.NextToken();

            Assert.IsNotNull(token);
            Assert.AreEqual(TokenType.String, token.TokenType);
            Assert.AreEqual("foo", token.Value);

            token = lexer.NextToken();

            Assert.IsNull(token);
        }
Esempio n. 8
0
        public void ProcessSeparators()
        {
            string separators = "()[]{},:;";
            Lexer lexer = new Lexer(separators);

            Token token;

            foreach (char ch in separators)
            {
                token = lexer.NextToken();

                Assert.IsNotNull(token);
                Assert.AreEqual(TokenType.Separator, token.TokenType);
                Assert.AreEqual(ch.ToString(), token.Value);
            }

            token = lexer.NextToken();

            Assert.IsNull(token);
        }
Esempio n. 9
0
        public void ProcessIntegerWithSpaces()
        {
            Lexer lexer = new Lexer(" 123 ");

            Token token;

            token = lexer.NextToken();

            Assert.IsNotNull(token);
            Assert.AreEqual(TokenType.Integer, token.TokenType);
            Assert.AreEqual("123", token.Value);

            token = lexer.NextToken();

            Assert.IsNull(token);
        }
Esempio n. 10
0
        public void RaiseIfUnclosedQuotedString()
        {
            Lexer lexer = new Lexer("'bar");

            Token token;

            token = lexer.NextToken();
        }
Esempio n. 11
0
        public void ProcessOneCharOperators()
        {
            string operators = "!+~-*/%&<^>|.=\\";
            Lexer lexer = new Lexer(operators);

            Token token;

            foreach (char ch in operators)
            {
                token = lexer.NextToken();

                Assert.IsNotNull(token);
                Assert.AreEqual(TokenType.Operator, token.TokenType);
                Assert.AreEqual(ch.ToString(), token.Value);
            }

            token = lexer.NextToken();

            Assert.IsNull(token);
        }
Esempio n. 12
0
        public void ProcessNameWithUnderscore()
        {
            Lexer lexer = new Lexer("my_name");

            Token token;

            token = lexer.NextToken();

            Assert.IsNotNull(token);
            Assert.AreEqual(TokenType.Name, token.TokenType);
            Assert.AreEqual("my_name", token.Value);

            token = lexer.NextToken();

            Assert.IsNull(token);
        }
Esempio n. 13
0
        public void ProcessNameEndOfLineName()
        {
            Lexer lexer = new Lexer("foo\r\nbar");

            Token token;

            token = lexer.NextToken();

            Assert.IsNotNull(token);
            Assert.AreEqual(TokenType.Name, token.TokenType);
            Assert.AreEqual("foo", token.Value);

            token = lexer.NextToken();

            Assert.IsNotNull(token);
            Assert.AreEqual(TokenType.EndOfLine, token.TokenType);

            token = lexer.NextToken();

            Assert.IsNotNull(token);
            Assert.AreEqual(TokenType.Name, token.TokenType);
            Assert.AreEqual("bar", token.Value);

            token = lexer.NextToken();

            Assert.IsNull(token);
        }
Esempio n. 14
0
        public void CreateWithTextReader()
        {
            Lexer lexer = new Lexer(new StringReader("text"));

            Assert.IsNotNull(lexer);
        }
Esempio n. 15
0
        public void ProcessMultiCharOperators()
        {
            string operators = "** >> << <= >= == === != =~ !~ <=> && || .. ... **= *= /= %= += -= <<= >>= &&= &= ||= |= ^=";
            string[] otherOperators = new string[] { "**", ">>", "<<", "<=", ">=", "==", "===", "!=", "=~", "!~", "<=>", "&&", "||", "..", "...", "**=", "*=", "/=", "%=", "+=", "-=", "<<=", ">>=", "&&=", "&=", "||=", "|=", "^=" };

            Lexer lexer = new Lexer(operators);

            Token token;

            foreach (string op in otherOperators)
            {
                token = lexer.NextToken();

                Assert.IsNotNull(token);
                Assert.AreEqual(TokenType.Operator, token.TokenType);
                Assert.AreEqual(op, token.Value);
            }

            token = lexer.NextToken();

            Assert.IsNull(token);
        }
Esempio n. 16
0
 public void RaiseIfTextIsNull()
 {
     Lexer lexer = new Lexer((string)null);
 }
Esempio n. 17
0
 public void RaiseIfTextReaderIsNull()
 {
     Lexer lexer = new Lexer((TextReader)null);
 }
Esempio n. 18
0
        public void ProcessQuotedString()
        {
            Lexer lexer = new Lexer("'bar'");

            Token token;

            token = lexer.NextToken();

            Assert.IsNotNull(token);
            Assert.AreEqual(TokenType.String, token.TokenType);
            Assert.AreEqual("bar", token.Value);

            token = lexer.NextToken();

            Assert.IsNull(token);
        }
Esempio n. 19
0
        public void RaiseIfUnclosedString()
        {
            Lexer lexer = new Lexer("\"foo");

            Token token;

            token = lexer.NextToken();
        }
Esempio n. 20
0
        public void ProcessQuotedStringWithSuperfluosBackslash()
        {
            Lexer lexer = new Lexer("'bar\\foo'");

            Token token;

            token = lexer.NextToken();

            Assert.IsNotNull(token);
            Assert.AreEqual(TokenType.String, token.TokenType);
            Assert.AreEqual("bar\\foo", token.Value);

            token = lexer.NextToken();

            Assert.IsNull(token);
        }
Esempio n. 21
0
        public void ProcessReal()
        {
            Lexer lexer = new Lexer("12.34");

            Token token;

            token = lexer.NextToken();

            Assert.IsNotNull(token);
            Assert.AreEqual(TokenType.Real, token.TokenType);
            Assert.AreEqual("12.34", token.Value);

            token = lexer.NextToken();

            Assert.IsNull(token);
        }
Esempio n. 22
0
 public Parser(Lexer lexer)
 {
     this.lexer = lexer;
 }