public FreeTextLiteral(string name, FreeTextOptions freeTextOptions, params string[] terminators) : base(name) { FreeTextOptions = freeTextOptions; Terminators.UnionWith(terminators); SetFlag(TermFlags.IsLiteral); }
public override void Initialize(GrammarData grammarData) { base.Initialize(grammarData); _isSimple = Terminators.Count == 1 && Escapes.Count == 0; if (_isSimple) { _singleTerminator = Terminators.First(); return; } var stopChars = new CharHashSet(); foreach (var key in Escapes.Keys) { stopChars.Add(key[0]); } foreach (var t in Terminators) { stopChars.Add(t[0]); } _stopChars = stopChars.ToArray(); }