Example #1
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 #3
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 I2()
        {
            ILexemeScanner p = new LexemeScanner("     ");

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

            Assert.IsFalse(p.IsSafeToRead);
            Assert.IsFalse(p.Next());
        }
Example #5
0
        public void M1()
        {
            var p = new LexemeScanner("   Name");


            var p2 = new IdentifierMachine(p);

            var t = p2.Get();

            Assert.IsTrue(t.IsSome);
            Assert.IsTrue(t.FirstOrDefault().value == "Name");
        }
        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");
            }
        }
Example #7
0
        public void M1()
        {
            var p = new LexemeScanner("   AND OR NOT NOTO");


            var p2 = new OperatorMachine(p);

            var t = p2.Get();

            Assert.IsTrue(t.IsSome && t.First().@operator == Operators.AND);

            t = p2.Get();

            Assert.IsTrue(t.IsSome && t.First().@operator == Operators.OR);

            t = p2.Get();
            Assert.IsTrue(t.IsSome && t.First().@operator == Operators.NOT);

            t = p2.Get();
            Assert.IsTrue(t.IsNone);
        }
        public void P1()
        {
            var lp    = new LexemeScanner("Hello = New AND Parent = SOSO ");
            var items = new List <object>();

            while (lp.IsSafeToRead)
            {
                var idm         = new IdentifierMachine(lp);
                var canContinue = true;

                do
                {
                    var t0 = idm.Get();
                    t0.Match(x =>
                    {
                        items.Add(x);
                        idm.Done();
                    }, () => canContinue = false);
                } while(canContinue);



                var om = new OperatorMachine(lp);
                canContinue = true;

                do
                {
                    var t0 = om.Get();
                    t0.Match(x =>
                    {
                        items.Add(x);
                        om.Done();
                    }, () => canContinue = false);
                } while(canContinue);
            }
        }