bpriver_chain 0.16.0
bpriver_chain: ^0.16.0 copied to clipboard
Implementation of chain language. Available as cui, argument parser or inter-appliation communication.
import 'package:bpriver_chain/bpriver_chain.dart';
import 'package:bpriver_origin/logger_result.dart';
void main() {
final source = 'a --b x -c --v -w --x x y z -z';
// parse serialized data.
final parseStringResult = Chain.parseString(source);
if (parseStringResult is! Success<List<String>, ChainException>) {
print('Chain.parseString() failed.');
return;
}
// Give List<String> type data to Chain.fromArguments() method.
final parseListResult = Chain.fromArguments(parseStringResult.wrapped);
if (parseListResult is! Success<Chain, ChainException>) {
print('Chain.fromArguments() failed.');
return;
};
final Chain chain = parseListResult.wrapped;
final varietyResult = chain.getVarietyAsString('b');
if (varietyResult is! Success<String, ChainException>) {
print('chain.getVarietyAs() failed.');
return;
};
final flagResult = chain.isFlag('c');
final multipleVarietyResult = chain.getVarietyEnumerationAsString('x');
if (multipleVarietyResult is! Success<List<String>, ChainException>) {
print('chain.getVarietyAsVarietyEnumerationpleString() failed.');
return;
}
print('head = ${chain.head.asContent.name}');
print('b variety value = ${varietyResult.wrapped}');
print('c flag = ${flagResult.wrapped}');
print('x variety value list = ${multipleVarietyResult.wrapped}');
print('variety enumeration list = ${chain.varietyEnumerationNameList}');
print('variety list = ${chain.varietyNameList}');
print('flag list = ${chain.flagNameList}');
}