/// <summary> /// Инициализирует не инициализированный экземпляр <see cref="CommandParser"/> с настройками по умолчанию. /// </summary> public CommandParser() { var settings = new MutableCommandParserSettings(MutableCommandParserSettings.DefaultSettings); SettingsProvider = () => settings; ParseStrategy = new DefaultCommandParseStrategy(SettingsProvider); IsConfigured = false; }
/// <summary> /// Устанавливает настройки парсера. /// </summary> /// <param name="settings">Настройки парсера.</param> /// <returns>Экземпляр билдера.</returns> /// <exception cref="ArgumentNullException">Если <paramref name="settings"/> равен <c>null</c>.</exception> public CommandParserBuilder WithSettings(MutableCommandParserSettings settings) { if (settings == null) { throw new ArgumentNullException(nameof(settings)); } _settingsProvider = () => settings; return(this); }
/// <summary> /// Инициализирует экземпляр <see cref="CommandParser"/>. /// </summary> /// <param name="configuration">Конфигуратор парсера.</param> public CommandParser(Action <MutableCommandParserSettings> configuration) { var settings = new MutableCommandParserSettings(MutableCommandParserSettings.DefaultSettings); configuration(settings); SettingsProvider = () => settings; ParseStrategy = new DefaultCommandParseStrategy(SettingsProvider); IsConfigured = true; }
/// <summary> /// Инициализирует экземпляр <see cref="CommandParser"/>. /// </summary> /// <param name="settings">Настройки.</param> internal CommandParser(MutableCommandParserSettings settings) { if (settings == null) { throw new ArgumentNullException(nameof(settings)); } SettingsProvider = () => settings; ParseStrategy = new DefaultCommandParseStrategy(SettingsProvider); IsConfigured = false; }
/// <summary> /// Устанавливает конфигуратор настроек парсера. В качестве параметра конфигуратору передаются настройки по умолчанию. /// </summary> /// <param name="configurer">Конфигуратор настроек.</param> /// <returns>Экземпляр билдера.</returns> /// <exception cref="ArgumentNullException">Если <paramref name="configurer"/> равен <c>null</c>.</exception> public CommandParserBuilder WithSettings(Action <MutableCommandParserSettings> configurer) { if (configurer == null) { throw new ArgumentNullException(nameof(configurer)); } _settingsProvider = () => { var settings = new MutableCommandParserSettings(MutableCommandParserSettings.DefaultSettings); configurer(settings); return(settings); }; return(this); }