public void I2()
        {
            ILexemeScanner p = new LexemeScanner("     ");

            while (p.IsSafeToRead)
            {
                p.Next();
            }

            Assert.IsFalse(p.IsSafeToRead);
            Assert.IsFalse(p.Next());
        }
Example #2
0
        public void M2()
        {
            var data = " 77 AND45 OR( NO";

            var p     = new LexemeScanner(data);
            var items = new List <Operators>();

            while (p.IsSafeToRead)
            {
                var machine = new OperatorMachine(p);
                var op      = machine.Get();

                if (op.IsSome)
                {
                    items.Add(op.First().@operator);
                    machine.Done();
                }
                else
                {
                    p.Next();
                }
            }

            Assert.IsTrue(items.Any(), "Nothing extracted");
            Assert.IsTrue(items.Count == 2, "not found required number of elements");
        }
        public void M()
        {
            var p = new LexemeScanner("\'Hello World\" this \' ");
            var m = new StringMachine(p);

            var tokens  = new List <Token>();
            var garbage = new StringBuilder();

            while (p.IsSafeToRead)
            {
                var t0 = m.Get();
                t0.Match(x =>
                {
                    tokens.Add(x);
                    m.Done();
                }, () =>
                {
                    garbage.Append(p.Current.data);
                    p.Next();
                });
            }

            Assert.IsTrue(tokens.Count == 1);
            Assert.IsTrue(garbage.Length > 0);
        }
Example #4
0
        public void I3()
        {
            ILexemeScanner p = new LexemeScanner(" +aa'yu _ 45 ");

            var items = new List <string>();

            while (p.IsSafeToRead)
            {
                var machine = Create(p);
                var t0      = machine.Get();

                if (t0.IsSome)
                {
                    items.Add(t0.First().value);
                    machine.Done();
                }
                else
                {
                    p.Next();
                }
            }

            Assert.IsTrue(items.Count == 2);
            Assert.IsTrue(items[0] == "aa" && items[1] == "yu");
        }
        public void Input1()
        {
            ILexemeScanner p = new LexemeScanner("      Nexus is valid");


            while (p.IsSafeToRead && p.Current.type != LexemeType.Alpha)
            {
                p.Next();
            }

            if (p.IsSafeToRead)
            {
                Assert.IsTrue('N' == p.Current.data);
            }
            else
            {
                Assert.Fail("Incorrect position in provider");
            }
        }