Skip to content

Commit c1f0b68

Browse files
committed
适配新版本
1 parent 1eb49d0 commit c1f0b68

File tree

2 files changed

+36
-27
lines changed

2 files changed

+36
-27
lines changed

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,9 @@
3030
*.exe
3131
*.out
3232
*.app
33+
34+
# Build Files
35+
build/
36+
37+
# CovScript Headers
38+
include/covscript

regex.cpp

Lines changed: 30 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -18,24 +18,22 @@
1818
* Github: https://github.com/mikecovlee
1919
*/
2020
#include <regex>
21-
#include <covscript/cni.hpp>
2221
#include <covscript/extension.hpp>
2322

24-
static cs::extension regex_ext;
25-
static cs::extension regex_result_ext;
26-
static cs::extension_t regex_ext_shared = cs::make_shared_namespace(regex_ext);
27-
static cs::extension_t regex_result_ext_shared = cs::make_shared_namespace(regex_result_ext);
23+
static cs::namespace_t regex_ext=cs::make_shared_namespace<cs::name_space>();
24+
static cs::namespace_t regex_result_ext=cs::make_shared_namespace<cs::name_space>();
25+
2826
namespace cs_impl {
2927
template<>
30-
cs::extension_t &get_ext<std::regex>()
28+
cs::namespace_t &get_ext<std::regex>()
3129
{
32-
return regex_ext_shared;
30+
return regex_ext;
3331
}
3432

3533
template<>
36-
cs::extension_t &get_ext<std::smatch>()
34+
cs::namespace_t &get_ext<std::smatch>()
3735
{
38-
return regex_result_ext_shared;
36+
return regex_result_ext;
3937
}
4038

4139
template<>
@@ -117,26 +115,31 @@ namespace regex_cs_ext {
117115
return m.suffix().str();
118116
}
119117

120-
void init()
121-
{
122-
regex_ext.add_var("result", var::make_protect<extension_t>(regex_result_ext_shared));
123-
regex_ext.add_var("build", var::make_protect<callable>(cni(build)));
124-
regex_ext.add_var("match", var::make_protect<callable>(cni(match)));
125-
regex_ext.add_var("search", var::make_protect<callable>(cni(search)));
126-
regex_ext.add_var("replace", var::make_protect<callable>(cni(replace)));
127-
regex_result_ext.add_var("ready", var::make_protect<callable>(cni(ready)));
128-
regex_result_ext.add_var("empty", var::make_protect<callable>(cni(empty)));
129-
regex_result_ext.add_var("size", var::make_protect<callable>(cni(size)));
130-
regex_result_ext.add_var("length", var::make_protect<callable>(cni(length)));
131-
regex_result_ext.add_var("position", var::make_protect<callable>(cni(position)));
132-
regex_result_ext.add_var("str", var::make_protect<callable>(cni(str)));
133-
regex_result_ext.add_var("prefix", var::make_protect<callable>(cni(prefix)));
134-
regex_result_ext.add_var("suffix", var::make_protect<callable>(cni(suffix)));
118+
void init(name_space* ns)
119+
{
120+
(*ns)
121+
.add_var("result", make_namespace(regex_result_ext))
122+
.add_var("build", make_cni(build))
123+
.add_var("match", make_cni(match))
124+
.add_var("search", make_cni(search))
125+
.add_var("replace", make_cni(replace));
126+
(*regex_ext)
127+
.add_var("match", make_cni(match))
128+
.add_var("search", make_cni(search))
129+
.add_var("replace", make_cni(replace));
130+
(*regex_result_ext)
131+
.add_var("ready", make_cni(ready))
132+
.add_var("empty", make_cni(empty))
133+
.add_var("size", make_cni(size))
134+
.add_var("length", make_cni(length))
135+
.add_var("position", make_cni(position))
136+
.add_var("str", make_cni(str))
137+
.add_var("prefix", make_cni(prefix))
138+
.add_var("suffix", make_cni(suffix));
135139
}
136140
}
137141

138-
cs::extension *cs_extension()
142+
void cs_extension_main(cs::name_space* ns)
139143
{
140-
regex_cs_ext::init();
141-
return &regex_ext;
144+
regex_cs_ext::init(ns);
142145
}

0 commit comments

Comments
 (0)