3 Copyright (C) 2010 Grame
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
15 You should have received a copy of the GNU Lesser General Public
16 License along with this library; if not, write to the Free Software
17 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 Grame Research Laboratory, 9 rue du Garet, 69001 Lyon - France
24 #include "OSCRegexp.h"
29 //--------------------------------------------------------------------------
30 OSCRegexp::OSCRegexp (const char* oscre
) : fRegexp (OSCRe2Re(oscre
).c_str()) {}
32 //--------------------------------------------------------------------------
33 // translates an OSC regexp into a regexp
34 // see OSC documentation
35 std::string
OSCRegexp::OSCRe2Re (const char* re
)
41 case '{': outstr
+= '('; inlist
= true; break;
42 case ',': outstr
+= (inlist
? '|' : ','); break;
43 case '}': outstr
+= ')'; inlist
= false; break;
44 case '*': outstr
+= ".*"; break;
45 case '?': outstr
+= '.'; break;
46 default: outstr
+= *re
;
53 //--------------------------------------------------------------------------
54 bool OSCRegexp::match (const char* str
) const
56 return fRegexp
.MatchExact(str
);