// same algorithm as above /// <exception cref="NotComputedException"></exception> public FirstResult Sequence(IEnumerable <Symbol> syms) { _ = Algo.Nullable ?? throw new NotComputedException(nameof(Algo.Nullable)); var result = new FirstResult(); foreach (var Bi in syms) { if (Bi.Type == Symbol.Types.Terminal) { result.Add(Bi); break; } else { result.UnionWith(this[Bi]); } if (!Algo.Nullable[Bi]) { break; } } return(result); }