| 14727 | return m_testSpec; |
| 14728 | } |
| 14729 | bool TestSpecParser::visitChar( char c ) { |
| 14730 | if( (m_mode != EscapedName) && (c == '\\') ) { |
| 14731 | escape(); |
| 14732 | addCharToPattern(c); |
| 14733 | return true; |
| 14734 | }else if((m_mode != EscapedName) && (c == ',') ) { |
| 14735 | return separate(); |
| 14736 | } |
| 14737 | |
| 14738 | switch( m_mode ) { |
| 14739 | case None: |
| 14740 | if( processNoneChar( c ) ) |
| 14741 | return true; |
| 14742 | break; |
| 14743 | case Name: |
| 14744 | processNameChar( c ); |
| 14745 | break; |
| 14746 | case EscapedName: |
| 14747 | endMode(); |
| 14748 | addCharToPattern(c); |
| 14749 | return true; |
| 14750 | default: |
| 14751 | case Tag: |
| 14752 | case QuotedName: |
| 14753 | if( processOtherChar( c ) ) |
| 14754 | return true; |
| 14755 | break; |
| 14756 | } |
| 14757 | |
| 14758 | m_substring += c; |
| 14759 | if( !isControlChar( c ) ) { |
| 14760 | m_patternName += c; |
| 14761 | m_realPatternPos++; |
| 14762 | } |
| 14763 | return true; |
| 14764 | } |
| 14765 | // Two of the processing methods return true to signal the caller to return |
| 14766 | // without adding the given character to the current pattern strings |
| 14767 | bool TestSpecParser::processNoneChar( char c ) { |