// Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. import 'dart:collection'; import 'arg_parser.dart'; import 'arg_results.dart'; import 'option.dart'; import 'parser.dart'; /// An ArgParser that treats *all input* as non-option arguments. class AllowAnythingParser implements ArgParser { @override Map get options => const {}; @override Map get commands => const {}; @override bool get allowTrailingOptions => false; @override bool get allowsAnything => true; @override int? get usageLineLength => null; @override ArgParser addCommand(String name, [ArgParser? parser]) { throw UnsupportedError( "ArgParser.allowAnything().addCommands() isn't supported."); } @override void addFlag(String name, {String? abbr, String? help, bool? defaultsTo = false, bool negatable = true, void Function(bool)? callback, bool hide = false, bool hideNegatedUsage = false, List aliases = const []}) { throw UnsupportedError( "ArgParser.allowAnything().addFlag() isn't supported."); } @override void addOption(String name, {String? abbr, String? help, String? valueHelp, Iterable? allowed, Map? allowedHelp, String? defaultsTo, void Function(String?)? callback, bool allowMultiple = false, bool? splitCommas, bool mandatory = false, bool hide = false, List aliases = const []}) { throw UnsupportedError( "ArgParser.allowAnything().addOption() isn't supported."); } @override void addMultiOption(String name, {String? abbr, String? help, String? valueHelp, Iterable? allowed, Map? allowedHelp, Iterable? defaultsTo, void Function(List)? callback, bool splitCommas = true, bool hide = false, List aliases = const []}) { throw UnsupportedError( "ArgParser.allowAnything().addMultiOption() isn't supported."); } @override void addSeparator(String text) { throw UnsupportedError( "ArgParser.allowAnything().addSeparator() isn't supported."); } @override ArgResults parse(Iterable args) => Parser(null, this, Queue.of(args)).parse(); @override String get usage => ''; @override dynamic defaultFor(String option) { throw ArgumentError('No option named $option'); } @override dynamic getDefault(String option) { throw ArgumentError('No option named $option'); } @override Option? findByAbbreviation(String abbr) => null; @override Option? findByNameOrAlias(String name) => null; }