bpriver_chain 0.3.1 copy "bpriver_chain: ^0.3.1" to clipboard
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}');

}
0
likes
0
points
311
downloads

Publisher

verified publisherbpriver.com

Weekly Downloads

this package is implementation of chain language.

Repository (GitLab)
View/report issues

License

unknown (license)

Dependencies

bpriver_origin, bpriver_syntax_scanner

More

Packages that depend on bpriver_chain