internal IEnumerable <Transition <A, S> > GetEnterableTransitions() { return(State.Transitions.Where(t => { bool transtionHasCorrectSymbolIn = t.SymbolIn.IsEmpty() || (!RemainingWord.IsEmpty() && t.SymbolIn.GetSymbol().Equals(RemainingWord.Symbols.First())); bool transitionHasCorrectStackSymbol = !Stack.IsEmpty() && Stack.StackSymbols.First().Equals(t.StackSymbolIn); return transitionHasCorrectStackSymbol && transtionHasCorrectSymbolIn; }).ToList()); }
public override string ToString() { return(State.Id + "/" + Stack.ToString() + "/" + RemainingWord.ToString()); }
internal XElement ToXml() { return(new XElement("config", new XElement("state", State.Id), new XElement("word", RemainingWord.ToString()), new XElement("stack", Stack.ToString()))); }