diff options
Diffstat (limited to 'src/piraha/Multi.cc')
-rw-r--r-- | src/piraha/Multi.cc | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/piraha/Multi.cc b/src/piraha/Multi.cc new file mode 100644 index 00000000..c7cfa447 --- /dev/null +++ b/src/piraha/Multi.cc @@ -0,0 +1,17 @@ +#include <iostream> +#include "Piraha.hpp" + +bool Multi::match(Matcher *m) { + unsigned int save; + int iter = 0; + while(true) { + save = m->pos; + if(!pattern->match(m)) + break; + if(save-m->pos == 0) + return minv <= iter && iter <= maxv; + iter++; + } + m->pos = save; + return minv <= iter && iter <= maxv; +} |