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