diff options
author | Tianyi Liang <tianyi-liang@uiowa.edu> | 2013-10-21 22:08:53 -0500 |
---|---|---|
committer | Tianyi Liang <tianyi-liang@uiowa.edu> | 2013-10-21 22:08:53 -0500 |
commit | d676b7e044b7a92377cb3d9bb7063faefb80d7f9 (patch) | |
tree | a137ba033faa3ce76934973000e5a225770dcba6 /src/util/regexp.h | |
parent | 730e88ecb2b3ae6fdb9148c096820516c61356f3 (diff) |
remove nested re or; opt loop
Diffstat (limited to 'src/util/regexp.h')
-rw-r--r-- | src/util/regexp.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/util/regexp.h b/src/util/regexp.h index 024bfd32e..fef039371 100644 --- a/src/util/regexp.h +++ b/src/util/regexp.h @@ -159,6 +159,30 @@ public: return convertUnsignedIntToChar( d_str[0] ); } + bool isRepeated() const { + if(d_str.size() > 1) { + unsigned int f = d_str[0]; + for(unsigned i=1; i<d_str.size(); ++i) { + if(f != d_str[i]) return false; + } + } + return true; + } + + bool tailcmp(const String &y, int &c) const { + int id_x = d_str.size() - 1; + int id_y = y.d_str.size() - 1; + while(id_x>=0 && id_y>=0) { + if(d_str[id_x] != y.d_str[id_y]) { + c = id_x; + return false; + } + --id_x; --id_y; + } + c = id_x == -1 ? ( - id_y) : id_x; + return true; + } + String substr(unsigned i) const { std::vector<unsigned int> ret_vec; std::vector<unsigned int>::const_iterator itr = d_str.begin() + i; |