Ejemplo n.º 1
0
        public void GetCarriageReturnNewLineAsEndOfLine()
        {
            Lexer lexer = new Lexer("\r\n");
            Token token = lexer.NextToken();

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

            Assert.IsNull(lexer.NextToken());
        }
Ejemplo n.º 2
0
        public void GetNameAndSkipComment()
        {
            Lexer lexer = new Lexer("foo # this is a name");
            Token token = lexer.NextToken();

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

            Assert.IsNull(lexer.NextToken());
        }
Ejemplo n.º 3
0
        public void GetName()
        {
            Lexer lexer = new Lexer("foo");
            Token token = lexer.NextToken();

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

            Assert.IsNull(lexer.NextToken());
        }
Ejemplo n.º 4
0
        public void GetLessOrEqualAsOperator()
        {
            Lexer lexer = new Lexer("<=");
            Token token = lexer.NextToken();

            Assert.IsNotNull(token);
            Assert.AreEqual("<=", token.Value);
            Assert.AreEqual(TokenType.Operator, token.Type);

            Assert.IsNull(lexer.NextToken());
        }
Ejemplo n.º 5
0
        public void GetInteger()
        {
            Lexer lexer = new Lexer("123");
            Token token = lexer.NextToken();

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

            Assert.IsNull(lexer.NextToken());
        }
Ejemplo n.º 6
0
        public void GetGreaterOperator()
        {
            Lexer lexer = new Lexer(">");
            Token token = lexer.NextToken();

            Assert.IsNotNull(token);
            Assert.AreEqual(">", token.Value);
            Assert.AreEqual(TokenType.Operator, token.Type);

            Assert.IsNull(lexer.NextToken());
        }
Ejemplo n.º 7
0
        public void GetNameSkipCommentAndGetEndOfLineName()
        {
            Lexer lexer = new Lexer("foo# this is a name\r\nbar");

            Token token = lexer.NextToken();

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

            token = lexer.NextToken();

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

            token = lexer.NextToken();

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

            Assert.IsNull(lexer.NextToken());
        }
Ejemplo n.º 8
0
 public void RaiseWhenUnclosedString()
 {
     Lexer lexer = new Lexer("\"foo");
     MyAssert.Throws<LexerException>(() => lexer.NextToken(),
         "Unclosed String");
 }
Ejemplo n.º 9
0
 public void RaiseWhenInvalidCharacter()
 {
     Lexer lexer = new Lexer("[");
     MyAssert.Throws<LexerException>(() => lexer.NextToken(),
         "Unexpected '['");
 }
Ejemplo n.º 10
0
        public void ParseSimpleConditionWithNumbers()
        {
            Lexer lexer = new Lexer("30 < 36");

            Assert.IsTrue(IsInteger("30", lexer.NextToken()));
            Assert.IsTrue(IsOperator("<", lexer.NextToken()));
            Assert.IsTrue(IsInteger("36", lexer.NextToken()));

            Assert.IsNull(lexer.NextToken());
        }
Ejemplo n.º 11
0
        public void ParseSimpleCondition()
        {
            Lexer lexer = new Lexer("Temperature > 36");

            Assert.IsTrue(IsName("Temperature", lexer.NextToken()));
            Assert.IsTrue(IsOperator(">", lexer.NextToken()));
            Assert.IsTrue(IsInteger("36", lexer.NextToken()));

            Assert.IsNull(lexer.NextToken());
        }
Ejemplo n.º 12
0
        public void ParseBooleans()
        {
            Lexer lexer = new Lexer("true false");

            Assert.IsTrue(IsBoolean("true", lexer.NextToken()));
            Assert.IsTrue(IsBoolean("false", lexer.NextToken()));

            Assert.IsNull(lexer.NextToken());
        }
Ejemplo n.º 13
0
        public void GetSimpleString()
        {
            Lexer lexer = new Lexer("\"foo\"");
            Token token = lexer.NextToken();

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

            Assert.IsNull(lexer.NextToken());
        }
Ejemplo n.º 14
0
        public void GetPeriodAsSeparator()
        {
            Lexer lexer = new Lexer(".");
            Token token = lexer.NextToken();

            Assert.IsNotNull(token);
            Assert.AreEqual(".", token.Value);
            Assert.AreEqual(TokenType.Separator, token.Type);

            Assert.IsNull(lexer.NextToken());
        }
Ejemplo n.º 15
0
        public void GetNameWithUnderscore()
        {
            Lexer lexer = new Lexer("is_not");
            Token token = lexer.NextToken();

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

            Assert.IsNull(lexer.NextToken());
        }
Ejemplo n.º 16
0
 public Parser(Lexer lexer)
 {
     this.lexer = lexer;
 }