MCPcopy Create free account
hub / github.com/ChaiScript/ChaiScript / loadBuffer

Method loadBuffer

unittests/catch.hpp:5647–5676  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5645 std::vector<Token> m_tokenBuffer;
5646
5647 void loadBuffer() {
5648 m_tokenBuffer.resize( 0 );
5649
5650 // Skip any empty strings
5651 while( it != itEnd && it->empty() )
5652 ++it;
5653
5654 if( it != itEnd ) {
5655 auto const &next = *it;
5656 if( isOptPrefix( next[0] ) ) {
5657 auto delimiterPos = next.find_first_of( " :=" );
5658 if( delimiterPos != std::string::npos ) {
5659 m_tokenBuffer.push_back( { TokenType::Option, next.substr( 0, delimiterPos ) } );
5660 m_tokenBuffer.push_back( { TokenType::Argument, next.substr( delimiterPos + 1 ) } );
5661 } else {
5662 if( next[1] != '-' && next.size() > 2 ) {
5663 std::string opt = "- ";
5664 for( size_t i = 1; i < next.size(); ++i ) {
5665 opt[1] = next[i];
5666 m_tokenBuffer.push_back( { TokenType::Option, opt } );
5667 }
5668 } else {
5669 m_tokenBuffer.push_back( { TokenType::Option, next } );
5670 }
5671 }
5672 } else {
5673 m_tokenBuffer.push_back( { TokenType::Argument, next } );
5674 }
5675 }
5676 }
5677
5678 public:
5679 explicit TokenStream( Args const &args ) : TokenStream( args.m_args.begin(), args.m_args.end() ) {}

Callers

nothing calls this directly

Calls 4

isOptPrefixFunction · 0.85
substrMethod · 0.80
emptyMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected