Example #1
0
 public void Contains()
 {
     State s = new State();
     Item item = new Item(new Production(), s);
     Assert.IsFalse(s.Contains(item));
     s.Add(item);
     Assert.IsTrue(s.Contains(item));
 }
Example #2
0
        private void Predictor(
            State state,
            Item item,
            IDictionary<Production,IList<Item>> completedNullable)
        {
            Debug.Assert(!item.AtEnd && item.Symbol is Nonterminal);

            Nonterminal nt = item.Symbol as Nonterminal;

            foreach (Production p in nt.Productions)
            {
                Item newItem = new Item(p, state);

                if (!state.Contains(newItem))
                {
                    state.Add(newItem);
                    ShiftCompletedNullable(state, newItem, completedNullable);
                }
            }
        }