MCPcopy Create free account
hub / github.com/docopt/docopt.cpp / parse_expr

Function parse_expr

docopt.cpp:437–456  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

435}
436
437PatternList parse_expr(Tokens& tokens, std::vector<Option>& options)
438{
439 // expr ::= seq ( '|' seq )* ;
440
441 auto seq = parse_seq(tokens, options);
442
443 if (tokens.current() != "|")
444 return seq;
445
446 PatternList ret;
447 ret.emplace_back(maybe_collapse_to_required(std::move(seq)));
448
449 while (tokens.current() == "|") {
450 tokens.pop();
451 seq = parse_seq(tokens, options);
452 ret.emplace_back(maybe_collapse_to_required(std::move(seq)));
453 }
454
455 return { maybe_collapse_to_either(std::move(ret)) };
456}
457
458static Required parse_pattern(std::string const& source, std::vector<Option>& options)
459{

Callers 2

parse_atomFunction · 0.85
parse_patternFunction · 0.85

Calls 4

parse_seqFunction · 0.85
maybe_collapse_to_eitherFunction · 0.85
popMethod · 0.80

Tested by

no test coverage detected