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

Method visitChar

unittests/catch.hpp:10462–10494  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

10460 }
10461
10462 void TestSpecParser::visitChar( char c ) {
10463 if( m_mode == None ) {
10464 switch( c ) {
10465 case ' ': return;
10466 case '~': m_exclusion = true; return;
10467 case '[': return startNewMode( Tag, ++m_pos );
10468 case '"': return startNewMode( QuotedName, ++m_pos );
10469 case '\\': return escape();
10470 default: startNewMode( Name, m_pos ); break;
10471 }
10472 }
10473 if( m_mode == Name ) {
10474 if( c == ',' ) {
10475 addPattern<TestSpec::NamePattern>();
10476 addFilter();
10477 }
10478 else if( c == '[' ) {
10479 if( subString() == "exclude:" )
10480 m_exclusion = true;
10481 else
10482 addPattern<TestSpec::NamePattern>();
10483 startNewMode( Tag, ++m_pos );
10484 }
10485 else if( c == '\\' )
10486 escape();
10487 }
10488 else if( m_mode == EscapedName )
10489 m_mode = Name;
10490 else if( m_mode == QuotedName && c == '"' )
10491 addPattern<TestSpec::NamePattern>();
10492 else if( m_mode == Tag && c == ']' )
10493 addPattern<TestSpec::TagPattern>();
10494 }
10495 void TestSpecParser::startNewMode( Mode mode, std::size_t start ) {
10496 m_mode = mode;
10497 m_start = start;

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected