internal MultiCharacterDelimiterParser(IDelimiterParser parentParser)
 {
     Delimiters = parentParser.Delimiters;
     HasTerminated = false;
     ParentParser = parentParser;
     _multiCharDelimiter = new StringBuilder();
 }
示例#2
0
        private IEnumerable <string> ExtractDelimitedInput(string input, IDelimiterParser delimiterParser)
        {
            var delimiter = delimiterParser.GetDelimiters(input);

            input = delimiterParser.GetBody(input);
            return(SplitInputOnDelimiters(input, delimiter));
        }
示例#3
0
 public Lexer_UnitTests()
 {
     _tokenizerMock       = Substitute.For <ITokenizer>();
     _delimiterParserMock = Substitute.For <IDelimiterParser>();
     _configMock          = Substitute.For <IConfiguration>();
     _lexer = new Lexer(_tokenizerMock, _delimiterParserMock, _configMock);
 }
 public Calculator(IDelimiterParser delimiterParser, IDataParser dataParser, IValidationService validationService, IConstraints constraints)
 {
     _delimiterParser   = delimiterParser ?? throw new ArgumentNullException(nameof(delimiterParser));
     _dataParser        = dataParser ?? throw new ArgumentNullException(nameof(dataParser));
     _validationService = validationService ?? throw new ArgumentNullException(nameof(validationService));
     _constraints       = constraints ?? throw new ArgumentNullException(nameof(constraints));
 }
        /// <summary>
        ///
        /// </summary>
        /// <param name="delimiterParser"></param>
        public NumberLinesParser(IDelimiterParser delimiterParser)
        {
            if (delimiterParser == null)
            {
                throw new ArgumentNullException(nameof(delimiterParser));
            }

            _delimiterParser = delimiterParser;
        }
        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="delimiterParser">An object to parse delimiters.</param>
        /// <param name="numberLinesParser">An object to parse lines of delimited numbers</param>
        /// <param name="numbersParser">An object to parse numbers from a line</param>
        /// <param name="numberFilter">An object used to filter out unwanted numbers</param>
        /// <param name="numberDetector">An object used to detect invalid numbers</param>
        /// <param name="numberAdder">An object used to sum a list of numbers</param>
        public BasicStringCalculator(IDelimiterParser delimiterParser, INumberLinesParser numberLinesParser, INumbersParser numbersParser, INumberFilter numberFilter, INumberDetector numberDetector, INumberAdder numberAdder)
        {
            if (delimiterParser == null)
            {
                throw new ArgumentNullException(nameof(delimiterParser));
            }

            if (numberLinesParser == null)
            {
                throw new ArgumentNullException(nameof(numberLinesParser));
            }

            if (numbersParser == null)
            {
                throw new ArgumentNullException(nameof(numbersParser));
            }

            if (numberFilter == null)
            {
                throw new ArgumentNullException(nameof(numberFilter));
            }

            if (numberDetector == null)
            {
                throw new ArgumentNullException(nameof(numberDetector));
            }

            if (numberAdder == null)
            {
                throw new ArgumentNullException(nameof(numberAdder));
            }

            _delimiterParser   = delimiterParser;
            _numberLinesParser = numberLinesParser;
            _numbersParser     = numbersParser;
            _numberFilter      = numberFilter;
            _numberDetector    = numberDetector;
            _numberAdder       = numberAdder;
        }
 public StringCalculator(IConsole console, IDelimiterParser delimiterParser)
 {
     this._console = console;
     this._delimiterParser = delimiterParser;
 }
 public StringCalculator()
 {
     this._console = new ConsoleWrapper();
     this._delimiterParser = new SubStringDelimiterParser();
 }
示例#9
0
 public Lexer(ITokenizer tokenizer, IDelimiterParser parser, IConfiguration config)
 {
     _tokenizer = tokenizer;
     _parser    = parser;
     _config    = config;
 }
 public StringCalculator(IConsole console, IDelimiterParser delimiterParser)
 {
     this._console         = console;
     this._delimiterParser = delimiterParser;
 }
 public StringCalculator()
 {
     this._console         = new ConsoleWrapper();
     this._delimiterParser = new SubStringDelimiterParser();
 }
 public DelimiterParser_UnitTests()
 {
     _parser = new DelimiterParser();
 }