| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- #include <boost/cregex.hpp>
- extern "C"
- {
- #include "lua.h"
- #include "lauxlib.h"
- #include "lualib.h"
- }
- #include <luabind/luabind.hpp>
- namespace
- {
- bool match(boost::RegEx& r, const char* s)
- {
- return r.Match(s);
- }
- bool search(boost::RegEx& r, const char* s)
- {
- return r.Search(s);
- }
- } // namespace unnamed
- void wrap_regex(lua_State* L)
- {
- using boost::RegEx;
- using namespace luabind;
- module(L)
- [
- class_<RegEx>("regex")
- .def(constructor<const char*>())
- .def(constructor<const char*, bool>())
- .def("match", match)
- .def("search", search)
- .def("what", &RegEx::What)
- .def("matched", &RegEx::Matched)
- .def("length", &RegEx::Length)
- .def("position", &RegEx::Position)
- ];
- }
- int main()
- {
- lua_State* L = lua_open();
- lua_baselibopen(L);
- lua_strlibopen(L);
- luabind::open(L);
-
- wrap_regex(L);
-
- lua_dofile(L, "regex.lua");
-
- lua_close(L);
- }
|