diff options
| author | graehl <graehl@ec762483-ff6d-05da-a07a-a48fb63a330f> | 2010-07-23 21:02:44 +0000 | 
|---|---|---|
| committer | graehl <graehl@ec762483-ff6d-05da-a07a-a48fb63a330f> | 2010-07-23 21:02:44 +0000 | 
| commit | 353ff197b082b71c623c7851e0df0ac60d770533 (patch) | |
| tree | 3d55c79807f86cbe579df3a9d1aebf4464331423 /decoder/stringlib.h | |
| parent | 37f4f68effe3b5ab823985798e77fa64dd66088d (diff) | |
implicit first param to ffs: "debug".  fsa final traversal set feature=0 first.  set FF_FSA_DEBUG (also FSA_DEBUG).
git-svn-id: https://ws10smt.googlecode.com/svn/trunk@387 ec762483-ff6d-05da-a07a-a48fb63a330f
Diffstat (limited to 'decoder/stringlib.h')
| -rw-r--r-- | decoder/stringlib.h | 25 | 
1 files changed, 25 insertions, 0 deletions
| diff --git a/decoder/stringlib.h b/decoder/stringlib.h index a0e03624..9efe3f36 100644 --- a/decoder/stringlib.h +++ b/decoder/stringlib.h @@ -14,6 +14,31 @@  #include <cstring>  #include <string> +template <class Istr, class Isubstr> inline +bool match_begin(Istr bstr,Istr estr,Isubstr bsub,Isubstr esub) +{ +  while (bsub != esub) { +    if (bstr == estr) +      return false; +    if (*bsub++ != *bstr++) +      return false; +  } +  return true; +} + +template <class Istr, class Prefix> inline +bool match_begin(Istr bstr,Istr estr,Prefix prefix) +{ +  return match_begin(bstr,estr,prefix.begin(),prefix.end()); +} + +template <class Str, class Prefix> inline +bool match_begin(Str const& str,Prefix const& prefix) +{ +  return match_begin(str.begin(),str.end(),prefix.begin(),prefix.end()); +} + +  // read line in the form of either:  //   source  //   source ||| target | 
