blob: 831e3a681fb37e478c30d13b0318c26ec778c0e5 [file] [log] [blame]
// 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<String, Option> get options => const {};
@override
Map<String, ArgParser> 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}) {
throw UnsupportedError(
"ArgParser.allowAnything().addFlag() isn't supported.");
}
@override
void addOption(String name,
{String? abbr,
String? help,
String? valueHelp,
Iterable<String>? allowed,
Map<String, String>? allowedHelp,
String? defaultsTo,
void Function(String?)? callback,
bool allowMultiple = false,
bool? splitCommas,
bool hide = false}) {
throw UnsupportedError(
"ArgParser.allowAnything().addOption() isn't supported.");
}
@override
void addMultiOption(String name,
{String? abbr,
String? help,
String? valueHelp,
Iterable<String>? allowed,
Map<String, String>? allowedHelp,
Iterable<String>? defaultsTo,
void Function(List<String>)? callback,
bool splitCommas = true,
bool hide = false}) {
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<String> 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;
}