public void BoyerMooreCaseFold()
 {
     BoyerMooreScanner scanner = new BoyerMooreScanner("example", true);
     Assert.That(scanner.Position, Is.EqualTo(-1));
     scanner.Scan("this is a simple example");
     Assert.That(scanner.Position, Is.EqualTo(17));
     scanner.Scan("the quick brown fox");
     Assert.That(scanner.Position, Is.EqualTo(19));
     scanner.Scan("This is a Simple Example");
     Assert.That(scanner.Position, Is.EqualTo(17));
     scanner.Scan("THIS IS A SIMPLE EXAMPLE");
     Assert.That(scanner.Position, Is.EqualTo(17));
 }
Example #2
0
        internal NFA(NFABuilder builder)
        {
            this.sameFinal = new Match.SameFinal();
            this.Pending = new int[builder.TestDepth];
            this.PendingTop = 0;
            this.Undos = new UndoStep[builder.MaxUndos + 2];
            this.UndoTop = 0;

            AtomicCount = builder.ParseInfo.nAtomics;
            GroupNames = builder.ParseInfo.captures.ToArray();
            QuantDepth = builder.ParseInfo.quantDepth;
            Anchored = builder.ParseInfo.anchor;
            Backrefs = builder.ParseInfo.backrefs;
            Instructions = builder.Instructions.ToArray();

            nTransitions = 0;
            List<Transition[]> stateList = new List<Transition[]>();
            foreach (List<Transition> transList in builder.States)
            {
                stateList.Add(transList.ToArray());
                nTransitions += transList.Count;
            }
            States = stateList.ToArray();
            FinalState = builder.FinalState;
            FirstTest = builder.FirstTest;
            FixedPrefix = builder.FixedPrefix;
        }
        public void BoyerMooreCasefoldRepeatScan()
        {
            BoyerMooreScanner scanner = new BoyerMooreScanner("pirate", true);

            int nMatches = 0;
            for (int pos = 0; scanner.Scan(penzance, pos); pos = scanner.Position + 1)
                nMatches++;

            Assert.That(nMatches, Is.EqualTo(10));
        }
 public void BoyerMooreExample()
 {
     BoyerMooreScanner scanner = new BoyerMooreScanner("example");
     Assert.That(scanner.Position, Is.EqualTo(-1));
     scanner.Scan("this is a simple example");
     Assert.That(scanner.Position, Is.EqualTo(17));
     scanner.Scan("the quick brown fox");
     Assert.That(scanner.Position, Is.EqualTo(19));
     scanner.Scan("This is a Simple Example");
     Assert.That(scanner.Position, Is.EqualTo(24));
 }