bpriver_chain 0.4.0 copy "bpriver_chain: ^0.4.0" to clipboard
bpriver_chain: ^0.4.0 copied to clipboard

Implementation of chain language. Available as cui, argument parser or inter-appliation communication.

example/example.dart

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 serial data.
    final parseStringResult = Chain.parseString(source);
    if (parseStringResult is! Success<List<String>, ChainSyntaxException>) {
        print('Chain.parseString() failed.');
        return;
    }

    // same as example/argument_parser.dart
    final parseListResult = Chain.parseList(parseStringResult.wrapped);
    if (parseListResult is! Success<Chain, ChainSyntaxException>) {
        print('Chain.parseList() failed.');
        return;
    };

    final Chain chain = parseListResult.wrapped;

    final headResult = chain.getHead();
    if (headResult is! Success<String, ChainExceptionB>) {
        print('chain.getHead() failed.');
        return;
    }

    final optionResult = chain.getOptionAsSingleString('b');
    if (optionResult is! Success<String, ChainExceptionIJK>) {
        print('chain.getOptionAsSingleString() failed.');
        return;
    };

    final flagResult = chain.isFlag('c');

    final multipleOptionResult = chain.getOptionAsMultipleString('x');
    if (multipleOptionResult is! Success<List<String>, ChainExceptionI>) {
        print('chain.getOptionAsMultipleString() failed.');
        return;
    }

    print('head = ${headResult.wrapped}');
    print('b option value = ${optionResult.wrapped}');
    print('c flag = ${flagResult.wrapped}');
    print('x option value list = ${multipleOptionResult.wrapped}');

    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}');

}
0
likes
0
points
308
downloads

Publisher

verified publisherbpriver.com

Weekly Downloads

Implementation of chain language. Available as cui, argument parser or inter-appliation communication.

Repository (GitLab)
View/report issues

License

unknown (license)

Dependencies

bpriver_origin, bpriver_syntax_scanner

More

Packages that depend on bpriver_chain