Exemple #1
0
        public void SetDelimiters(char openDelimiter, char closeDelimiter)
        {
            GroupHighlighterATNSimulator interpreter = Interpreter;

            if (interpreter.OpenDelimiter == openDelimiter && interpreter.CloseDelimiter == closeDelimiter)
            {
                return;
            }

            _interp = GetSimulatorForDelimiters(openDelimiter, closeDelimiter);
            Interpreter.CopyState(interpreter);
        }
Exemple #2
0
        private GroupHighlighterATNSimulator GetSimulatorForDelimiters(char openDelimiter, char closeDelimiter)
        {
            ATN atn = GetATNForDelimiters(openDelimiter, closeDelimiter);

            lock (_atnToSimulator)
            {
                GroupHighlighterATNSimulator simulator;
                if (!_atnToSimulator.TryGetValue(atn, out simulator))
                {
                    simulator            = new GroupHighlighterATNSimulator(this, atn, openDelimiter, closeDelimiter);
                    _atnToSimulator[atn] = simulator;
                }

                return(simulator);
            }
        }