using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace HeuristicLab.Algorithms.DataAnalysis.SymRegGrammarEnumeration.GrammarEnumeration { public class SymbolString : List { public SymbolString(IEnumerable symbols) : base(symbols) { } public bool IsSentence() { return this.All(sym => sym is TerminalSymbol); } public int[] GetNonterminalSymbolIndexes() { return Enumerable.Range(0, Count) .Where(i => this[i] is NonterminalSymbol) .ToArray(); } public override string ToString() { return string.Join(" ", this); } } }