示例#1
0
 public void TryParse_LiteralStartingWithChar_MustReturnTrue()
 {
     ParserAssert.IsTrue <LiteralToken>(_parser, "ab_1 asd ", 4, out _);
     ParserAssert.IsTrue <LiteralToken>(_parser, "ab_2-asd ", 4, out _);
     ParserAssert.IsTrue <LiteralToken>(_parser, "ab_3,asd ", 4, out _);
     ParserAssert.IsTrue <LiteralToken>(_parser, "abc4(asd ", 4, out _);
     ParserAssert.IsTrue <LiteralToken>(_parser, "abc0;asd ", 4, out _);
 }
示例#2
0
 public void TryParse_LiteralStartingWithUnderscore_MustReturnTrue()
 {
     ParserAssert.IsTrue <LiteralToken>(_parser, "_ab_1 asd ", 5, out _);
     ParserAssert.IsTrue <LiteralToken>(_parser, "_ab_2-asd ", 5, out _);
     ParserAssert.IsTrue <LiteralToken>(_parser, "_ab_3,asd ", 5, out _);
     ParserAssert.IsTrue <LiteralToken>(_parser, "_abc4(asd ", 5, out _);
     ParserAssert.IsTrue <LiteralToken>(_parser, "_abc0;asd ", 5, out _);
 }
示例#3
0
        public void TryParse_RoundBrackets_MustReturnTrue()
        {
            ParenthesisToken token;

            ParserAssert.IsTrue(_parser, "(", 1, out token);
            Assert.IsTrue(token.IsOpen);

            ParserAssert.IsTrue(_parser, ")", 1, out token);
            Assert.IsFalse(token.IsOpen);
        }
示例#4
0
 public void TryParse_First256Chars_MustReturnTrueOnlyIfCharIsAnArithmeticSymbol()
 {
     for (var c = (char)0; c <= 256; c++) // includes: latin letters, numbers, and symbols
     {
         if ("+-*/%".IndexOf(c) > -1)
         {
             ParserAssert.IsTrue <ArithmeticSymbolToken>(_parser, c.ToString(), 1, out _);
         }
         else
         {
             Assert.IsFalse(_parser.TryParse(c.ToString(), 0, out _, out _));
         }
     }
 }
示例#5
0
        public void TryParse_Number_MustReturnTrue()
        {
            NumberToken token;

            ParserAssert.IsTrue(_parser, "1234", 4, out token);
            Assert.AreEqual(1234, token.Number);

            ParserAssert.IsTrue(_parser, "1e-7", 4, out token);
            Assert.AreEqual(1e-7, token.Number);

            ParserAssert.IsTrue(_parser, "5.09", 4, out token);
            Assert.AreEqual(5.09, token.Number);

            ParserAssert.IsTrue(_parser, "1.33", 4, out token);
            Assert.AreEqual(1.33, token.Number);

            ParserAssert.IsTrue(_parser, "1e10", 4, out token);
            Assert.AreEqual(1e10, token.Number);

            ParserAssert.IsTrue(_parser, "1e+3", 4, out token);
            Assert.AreEqual(1e+3, token.Number);

            ParserAssert.IsTrue(_parser, "1_23", 4, out token);
            Assert.AreEqual(1_23, token.Number);

            ParserAssert.IsTrue(_parser, "1,23", 1, out token);
            Assert.AreEqual(1, token.Number);

            ParserAssert.IsTrue(_parser, "-123", 4, out token);
            Assert.AreEqual(-123, token.Number);

            ParserAssert.IsTrue(_parser, "-2e3", 4, out token);
            Assert.AreEqual(-2e3, token.Number);

            ParserAssert.IsTrue(_parser, "-9.1", 4, out token);
            Assert.AreEqual(-9.1, token.Number);

            ParserAssert.IsTrue(_parser, "+5.3", 4, out token);
            Assert.AreEqual(+5.3, token.Number);
        }
示例#6
0
 public void TryParse_Comma_MustReturnTrue()
 {
     ParserAssert.IsTrue <SeparatorToken>(_parser, ",", 1, out _);
 }
 public void TryParse_LessThan_MustReturnTrue()
 {
     ParserAssert.IsTrue <ComparisonToken>(_parser, "<  ", 1, out _);
     ParserAssert.IsTrue <ComparisonToken>(_parser, "< =", 1, out _);
 }
 public void TryParse_GreaterThan_MustReturnTrue()
 {
     ParserAssert.IsTrue <ComparisonToken>(_parser, ">  ", 1, out _);
     ParserAssert.IsTrue <ComparisonToken>(_parser, "> =", 1, out _);
 }
 public void TryParse_NotEqual_MustReturnTrue()
 {
     ParserAssert.IsTrue <ComparisonToken>(_parser, "!== ", 3, out _);
     ParserAssert.IsTrue <ComparisonToken>(_parser, "!=  ", 2, out _);
     ParserAssert.IsTrue <ComparisonToken>(_parser, "!===", 3, out _);
 }
示例#10
0
 public void TryParse_ExclamationMark_MustReturnTrue()
 {
     ParserAssert.IsTrue <NegationToken>(_parser, "!(true)", 1, out _);
 }
示例#11
0
 public void TryParse_FalseLowercaseWord_MustReturnTrue()
 {
     ParserAssert.IsTrue <BoolToken>(_parser, "false", 5, out _);
 }
示例#12
0
 public void TryParse_TrueLowercaseWord_MustReturnTrue()
 {
     ParserAssert.IsTrue <BoolToken>(_parser, "true", 4, out _);
 }
示例#13
0
 public void TryParse_Str_MustReturnTrue()
 {
     ParserAssert.IsTrue <StringToken>(_parser, "\"hello world\"", 13, out _);
     ParserAssert.IsTrue <StringToken>(_parser, "\'hello world\'", 13, out _);
 }
示例#14
0
 public void TryParse_Or_MustReturnTrue()
 {
     ParserAssert.IsTrue <LogicalOperatorToken>(_parser, "||  1", 2, out _);
     ParserAssert.IsTrue <LogicalOperatorToken>(_parser, "||| )", 2, out _);
     ParserAssert.IsTrue <LogicalOperatorToken>(_parser, "||abc", 2, out _);
 }
示例#15
0
 public void TryParse_And_MustReturnTrue()
 {
     ParserAssert.IsTrue <LogicalOperatorToken>(_parser, "&&  1", 2, out _);
     ParserAssert.IsTrue <LogicalOperatorToken>(_parser, "&&& )", 2, out _);
     ParserAssert.IsTrue <LogicalOperatorToken>(_parser, "&&abc", 2, out _);
 }