bpriver_chain 0.3.1
bpriver_chain: ^0.3.1 copied to clipboard
this package is implementation of chain language.
example/example.dart
import 'package:bpriver_chain/bpriver_chain.dart';
void main() {
final source = 'a --b x -c --v -w --x x y z -z';
final parseStringResult = Chain.parseString(source);
if (parseStringResult is! Success<List<String>, ChainSyntaxException>) {
print('parseString() is Failure');
return;
}
final parseListResult = Chain.parseList(parseStringResult.wrapped);
if (parseListResult is! Success<Chain, ChainSyntaxException>) {
print('parseList() is Failure');
return;
};
final Chain chain = parseListResult.wrapped;
final headResult = chain.getHead();
if (headResult is! Success<String, ChainExceptionB>) {
print('headBox is Failure');
return;
}
final head = headResult.wrapped;
final optionResult = chain.getOptionAsSingleString('b');
if (optionResult is! Success<String, ChainExceptionIJK>) {
print('option is Failure');
return;
};
final option = optionResult.wrapped;
final flagResult = chain.isFlag('c');
final flag = flagResult.wrapped;
if (flag == false) {
print('flag is Failure');
return;
}
final multipleOptionResult = chain.getOptionAsMultiple('x');
if (multipleOptionResult is! Success<ArgumentList<ValueArgument>, ChainExceptionI>) {
print('multiple option is Failure');
return;
}
final multipleOption = multipleOptionResult.wrapped.toPrimitive();
print('head = ${head}');
print('b option = ${option}');
print('c flag = ${flag}');
print('x option = ${multipleOption}');
final List<String> optionList = [];
for (final i in chain.optionList) {
optionList.add(i.nameArgument.name);
}
print('option list = ${optionList}');
final List<String> flagList = [];
for (final i in chain.flagList) {
flagList.add(i.nameArgument.name);
}
print('flag list = ${flagList}');
}