#include extern "C" { #include "lua.h" #include "lauxlib.h" #include "lualib.h" } #include 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") .def(constructor()) .def(constructor()) .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); }