public AttributeSelectorProcessor(IProcessSelectorContent previousProcessor)
            {
                if (previousProcessor == null)
                {
                    throw new ArgumentNullException("previousProcessor");
                }

                _previousProcessor = previousProcessor;
            }
            private QuotedSelectorProcessor(IProcessSelectorContent previousProcessor, char quoteCharacter, bool nextCharacterIsEscaped)
            {
                if (previousProcessor == null)
                {
                    throw new ArgumentNullException("previousProcessor");
                }

                _previousProcessor      = previousProcessor;
                _quoteCharacter         = quoteCharacter;
                _nextCharacterIsEscaped = nextCharacterIsEscaped;
            }
            public SelectorProcessorResult(CharacterCategorisationOptions characterCategorisation, IProcessSelectorContent nextProcessor)
            {
                if (!Enum.IsDefined(typeof(CharacterCategorisationOptions), characterCategorisation))
                {
                    throw new ArgumentOutOfRangeException("characterCategorisation");
                }
                if (nextProcessor == null)
                {
                    throw new ArgumentNullException("nextProcessor");
                }

                CharacterCategorisation = characterCategorisation;
                NextProcessor           = nextProcessor;
            }
 public QuotedSelectorProcessor(IProcessSelectorContent previousProcessor, char quoteCharacter) : this(previousProcessor, quoteCharacter, false)
 {
 }