23 #include <utility/exit.hh>
29 : map_is_clean_( true )
34 map_is_clean_( false )
39 pos_map_( other.pos_map_ ),
40 map_is_clean_( other.map_is_clean_ )
44 if (
this==&other )
return *
this;
45 std::string::operator=( other );
52 std::string::operator=( other );
59 runtime_assert( seqpos <=
pos_map_.size() );
62 if ( apos < annotated_seq.length()-1 ) {
63 return annotated_seq[ apos+1 ]==
'[';
71 runtime_assert( seqpos <=
pos_map_.size() );
75 if ( apos < annotated_seq.length()-2 ) {
76 if ( !annotated_seq[ apos+1 ]==
'[' )
return "";
77 for (
Size i = apos+2; i < annotated_seq.length() && annotated_seq[ i ]!=
']'; ++i ) {
78 patch_txt = patch_txt + annotated_seq[ i ];
86 runtime_assert( seqpos <=
pos_map_.size() );
89 return annotated_seq[ apos ];
99 bool in_bracket =
false;
100 for (
Size i = 0, ie = annotated_seq.length(); i < ie; ++i ) {
101 char c = annotated_seq[i];
105 }
else if ( c ==
']' ) {
112 sequence = sequence +
c;
116 runtime_assert( !in_bracket );
125 bool in_bracket =
false;
127 pos_map_.reserve( annotated_seq.length() );
128 for (
Size i = 0, ie = annotated_seq.length(); i < ie; ++i ) {
129 char c = annotated_seq[i];
133 }
else if ( c ==
']' ) {