示例#1
0
        public static Pagination Parse(string raw)
        {
            var parser = new LLParser(":", raw);
            var result = new Pagination();

            result.TotalCount = int.Parse(parser.Next());
            result.RangeIn    = int.Parse(parser.Next());
            result.RangeOut   = int.Parse(parser.Next());
            return(result);
        }
示例#2
0
 public void Next()
 {
     while (true)
     {
         var token = parser.Next();
         if (token == null)
         {
             break;
         }
     }
 }
示例#3
0
        public void Next_CallNumbers(string input, int expectedCallNumber)
        {
            var parser = new LLParser(".", input);

            var calls = 0;

            while (parser.Next() != null)
            {
                calls++;
            }

            Assert.AreEqual(expectedCallNumber, calls);
        }
示例#4
0
        public void Next_ValidResult(string input, params string[] expected)
        {
            var parser = new LLParser(".", input);

            var result = new List <string>();

            Span <char> next = null;

            while ((next = parser.Next()) != null)
            {
                result.Add(next.ToString());
            }

            Assert.AreEqual(expected.Length, result.Count);
            result.ToArray().Should().Equal(expected);
        }
示例#5
0
        public static BlockGroup Parse(string raw)
        {
            var result = new BlockGroup();
            var parser = new LLParser(".", raw);

            while (true)
            {
                var idRaw = parser.Next();
                if (idRaw == null)
                {
                    break;
                }
                if (!int.TryParse(idRaw, out var id))
                {
                    throw new Exception($"Can't parse group id in: {raw}");
                }
                result.Add(id);
            }

            return(result);
        }