]> git.tdb.fi Git - libs/core.git/blobdiff - source/strings/regmatch.cpp
Move files around to prepare for assimilation into core
[libs/core.git] / source / strings / regmatch.cpp
diff --git a/source/strings/regmatch.cpp b/source/strings/regmatch.cpp
new file mode 100644 (file)
index 0000000..f81be1a
--- /dev/null
@@ -0,0 +1,33 @@
+/* $Id$
+
+This file is part of libmspstrings
+Copyright © 2007 Mikko Rasa
+Distributed under the LGPL
+*/
+
+#include <msp/core/except.h>
+#include "regmatch.h"
+
+using namespace std;
+
+namespace Msp {
+
+RegMatch::RegMatch(const string &str, const GroupArray &g):
+       groups(g)
+{
+       for(GroupArray::iterator i=groups.begin(); i!=groups.end(); ++i)
+               if(i->match)
+               {
+                       i->length = i->end-i->begin;
+                       i->str = str.substr(i->begin, i->length);
+               }
+}
+
+const RegMatch::Group &RegMatch::group(unsigned i) const
+{
+       if(i>=groups.size())
+               throw InvalidParameterValue("Group index out of range");
+       return groups[i];
+}
+
+} // namespace Msp