Ejemplo n.º 1
0
 public FreeTextLiteral(string name, FreeTextOptions freeTextOptions, params string[] terminators)
     : base(name)
 {
     FreeTextOptions = freeTextOptions;
     Terminators.UnionWith(terminators);
     SetFlag(TermFlags.IsLiteral);
 }
Ejemplo n.º 2
0
        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();
        }