Bitcoin Core  27.99.0
P2P Digital Currency
Functions
spanparsing Namespace Reference

Functions

bool Const (const std::string &str, Span< const char > &sp)
 Parse a constant. More...
 
bool Func (const std::string &str, Span< const char > &sp)
 Parse a function call. More...
 
Span< const char > Expr (Span< const char > &sp)
 Extract the expression that sp begins with. More...
 
template<typename T = Span<const char>>
std::vector< T > Split (const Span< const char > &sp, std::string_view separators)
 Split a string on any char found in separators, returning a vector. More...
 
template<typename T = Span<const char>>
std::vector< T > Split (const Span< const char > &sp, char sep)
 Split a string on every instance of sep, returning a vector. More...
 

Function Documentation

◆ Const()

bool spanparsing::Const ( const std::string &  str,
Span< const char > &  sp 
)

Parse a constant.

If sp's initial part matches str, sp is updated to skip that part, and true is returned. Otherwise sp is unmodified and false is returned.

Definition at line 15 of file spanparsing.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Expr()

Span< const char > spanparsing::Expr ( Span< const char > &  sp)

Extract the expression that sp begins with.

This function will return the initial part of sp, up to (but not including) the first comma or closing brace, skipping ones that are surrounded by braces. So for example, for "foo(bar(1),2),3" the initial part "foo(bar(1),2)" will be returned. sp will be updated to skip the initial part that is returned.

Definition at line 33 of file spanparsing.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Func()

bool spanparsing::Func ( const std::string &  str,
Span< const char > &  sp 
)

Parse a function call.

If sp's initial part matches str + "(", and sp ends with ")", sp is updated to be the section between the braces, and true is returned. Otherwise sp is unmodified and false is returned.

Definition at line 24 of file spanparsing.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Split() [1/2]

template<typename T = Span<const char>>
std::vector<T> spanparsing::Split ( const Span< const char > &  sp,
char  sep 
)

Split a string on every instance of sep, returning a vector.

If sep does not occur in sp, a singleton with the entirety of sp is returned.

Note that this function does not care about braces, so splitting "foo(bar(1),2),3) on ',' will return {"foo(bar(1)", "2)", "3)"}.

Definition at line 72 of file spanparsing.h.

◆ Split() [2/2]

template<typename T = Span<const char>>
std::vector<T> spanparsing::Split ( const Span< const char > &  sp,
std::string_view  separators 
)

Split a string on any char found in separators, returning a vector.

If sep does not occur in sp, a singleton with the entirety of sp is returned.

Note that this function does not care about braces, so splitting "foo(bar(1),2),3) on ',' will return {"foo(bar(1)", "2)", "3)"}.

Definition at line 48 of file spanparsing.h.

Here is the call graph for this function:
Here is the caller graph for this function: