public void I2() { ILexemeScanner p = new LexemeScanner(" "); while (p.IsSafeToRead) { p.Next(); } Assert.IsFalse(p.IsSafeToRead); Assert.IsFalse(p.Next()); }
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); }
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"); } }