mirror of
https://github.com/ChaiScript/ChaiScript.git
synced 2026-04-30 19:09:26 +08:00
Address review: remove default values from StringType template parameters
Remove `= std::string` defaults from the StringType template parameter on ChaiScript_Parser, Bootstrap::bootstrap(), Std_Lib::library(), and ChaiScript_Impl. All call sites now specify the string type explicitly. Requested by @lefticus in PR #684 review. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
f1e0fb35da
commit
e25ce22406
@ -820,7 +820,7 @@
|
||||
#include "language/chaiscript_parser.hpp"
|
||||
|
||||
namespace chaiscript {
|
||||
template<typename StringType = std::string>
|
||||
template<typename StringType>
|
||||
class ChaiScript_Impl : public ChaiScript_Basic {
|
||||
public:
|
||||
ChaiScript_Impl(std::vector<std::string> t_modulepaths = {},
|
||||
|
||||
@ -27,8 +27,8 @@
|
||||
#include "language/chaiscript_parser.hpp"
|
||||
|
||||
ChaiScript_Basic chai(
|
||||
chaiscript::Std_Lib::library(),
|
||||
std::make_unique<parser::ChaiScript_Parser<eval::Noop_Tracer, optimizer::Optimizer_Default>>());
|
||||
chaiscript::Std_Lib::library<std::string>(),
|
||||
std::make_unique<parser::ChaiScript_Parser<eval::Noop_Tracer, optimizer::Optimizer_Default, std::string>>());
|
||||
|
||||
*/
|
||||
|
||||
|
||||
@ -38,7 +38,7 @@
|
||||
namespace chaiscript {
|
||||
class Std_Lib {
|
||||
public:
|
||||
template<typename StringType = std::string>
|
||||
template<typename StringType>
|
||||
[[nodiscard]] static ModulePtr library(const std::vector<Library_Options> &t_opts = {}) {
|
||||
if (std::find(t_opts.begin(), t_opts.end(), Library_Options::No_Stdlib) != t_opts.end()) {
|
||||
return std::make_shared<Module>();
|
||||
|
||||
@ -271,7 +271,7 @@ namespace chaiscript::bootstrap {
|
||||
/// \brief perform all common bootstrap functions for std::string, void and POD types
|
||||
/// \param[in,out] m Module to add bootstrapped functions to
|
||||
/// \param[in] t_no_io If true, skip registering print_string and println_string
|
||||
template<typename StringType = std::string>
|
||||
template<typename StringType>
|
||||
static void bootstrap(Module &m, const bool t_no_io = false) {
|
||||
m.add(user_type<void>(), "void");
|
||||
m.add(user_type<bool>(), "bool");
|
||||
|
||||
@ -126,7 +126,7 @@ namespace chaiscript {
|
||||
|
||||
} // namespace detail
|
||||
|
||||
template<typename Tracer, typename Optimizer, typename StringType = std::string, std::size_t Parse_Depth = 512>
|
||||
template<typename Tracer, typename Optimizer, typename StringType, std::size_t Parse_Depth = 512>
|
||||
class ChaiScript_Parser final : public ChaiScript_Parser_Base {
|
||||
void *get_tracer_ptr() noexcept override { return &m_tracer; }
|
||||
|
||||
|
||||
@ -14,7 +14,7 @@
|
||||
#endif
|
||||
|
||||
CHAISCRIPT_MODULE_EXPORT chaiscript::ModulePtr create_chaiscript_module_chaiscript_stdlib() {
|
||||
return chaiscript::Std_Lib::library();
|
||||
return chaiscript::Std_Lib::library<std::string>();
|
||||
}
|
||||
|
||||
#ifdef __llvm__
|
||||
|
||||
@ -2,5 +2,5 @@
|
||||
#include "chaiscript_parser.hpp"
|
||||
|
||||
std::unique_ptr<chaiscript::parser::ChaiScript_Parser_Base> create_chaiscript_parser() {
|
||||
return std::make_unique<chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Noop_Tracer, chaiscript::optimizer::Optimizer_Default>>();
|
||||
return std::make_unique<chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Noop_Tracer, chaiscript::optimizer::Optimizer_Default, std::string>>();
|
||||
}
|
||||
|
||||
@ -2,5 +2,5 @@
|
||||
#include "chaiscript_stdlib.hpp"
|
||||
|
||||
std::shared_ptr<chaiscript::Module> create_chaiscript_stdlib() {
|
||||
return chaiscript::Std_Lib::library();
|
||||
return chaiscript::Std_Lib::library<std::string>();
|
||||
}
|
||||
|
||||
@ -978,9 +978,9 @@ struct Count_Tracer {
|
||||
};
|
||||
|
||||
TEST_CASE("Test count tracer") {
|
||||
using Parser_Type = chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<Count_Tracer>, chaiscript::optimizer::Optimizer_Default>;
|
||||
using Parser_Type = chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Tracer<Count_Tracer>, chaiscript::optimizer::Optimizer_Default, std::string>;
|
||||
|
||||
chaiscript::ChaiScript_Basic chai(chaiscript::Std_Lib::library(), std::make_unique<Parser_Type>());
|
||||
chaiscript::ChaiScript_Basic chai(chaiscript::Std_Lib::library<std::string>(), std::make_unique<Parser_Type>());
|
||||
|
||||
Parser_Type &parser = dynamic_cast<Parser_Type &>(chai.get_parser());
|
||||
|
||||
@ -1347,7 +1347,7 @@ TEST_CASE("Test if non copyable/movable types can be registered") {
|
||||
// Tests through ChaiScript_Basic (library options passed explicitly to Std_Lib::library)
|
||||
|
||||
TEST_CASE("ChaiScript_Basic No_Stdlib option disables all standard library functions") {
|
||||
chaiscript::ChaiScript_Basic chai(chaiscript::Std_Lib::library({chaiscript::Library_Options::No_Stdlib}),
|
||||
chaiscript::ChaiScript_Basic chai(chaiscript::Std_Lib::library<std::string>({chaiscript::Library_Options::No_Stdlib}),
|
||||
create_chaiscript_parser(),
|
||||
{},
|
||||
{},
|
||||
@ -1361,7 +1361,7 @@ TEST_CASE("ChaiScript_Basic No_Stdlib option disables all standard library funct
|
||||
}
|
||||
|
||||
TEST_CASE("ChaiScript_Basic No_IO option uses null handler by default") {
|
||||
chaiscript::ChaiScript_Basic chai(chaiscript::Std_Lib::library({chaiscript::Library_Options::No_IO}),
|
||||
chaiscript::ChaiScript_Basic chai(chaiscript::Std_Lib::library<std::string>({chaiscript::Library_Options::No_IO}),
|
||||
create_chaiscript_parser(),
|
||||
{},
|
||||
{},
|
||||
@ -1383,7 +1383,7 @@ TEST_CASE("ChaiScript_Basic No_IO option uses null handler by default") {
|
||||
}
|
||||
|
||||
TEST_CASE("ChaiScript_Basic No_Prelude option disables prelude functions") {
|
||||
chaiscript::ChaiScript_Basic chai(chaiscript::Std_Lib::library({chaiscript::Library_Options::No_Prelude}),
|
||||
chaiscript::ChaiScript_Basic chai(chaiscript::Std_Lib::library<std::string>({chaiscript::Library_Options::No_Prelude}),
|
||||
create_chaiscript_parser(),
|
||||
{},
|
||||
{},
|
||||
@ -1396,7 +1396,7 @@ TEST_CASE("ChaiScript_Basic No_Prelude option disables prelude functions") {
|
||||
}
|
||||
|
||||
TEST_CASE("ChaiScript_Basic No_JSON option disables JSON support") {
|
||||
chaiscript::ChaiScript_Basic chai(chaiscript::Std_Lib::library({chaiscript::Library_Options::No_JSON}),
|
||||
chaiscript::ChaiScript_Basic chai(chaiscript::Std_Lib::library<std::string>({chaiscript::Library_Options::No_JSON}),
|
||||
create_chaiscript_parser(),
|
||||
{},
|
||||
{},
|
||||
@ -1408,7 +1408,7 @@ TEST_CASE("ChaiScript_Basic No_JSON option disables JSON support") {
|
||||
}
|
||||
|
||||
TEST_CASE("ChaiScript_Basic default library has all functions") {
|
||||
chaiscript::ChaiScript_Basic chai(chaiscript::Std_Lib::library(),
|
||||
chaiscript::ChaiScript_Basic chai(chaiscript::Std_Lib::library<std::string>(),
|
||||
create_chaiscript_parser(),
|
||||
{},
|
||||
{},
|
||||
|
||||
@ -5,8 +5,8 @@
|
||||
|
||||
Multi_Test_Chai::Multi_Test_Chai()
|
||||
: m_chai(new chaiscript::ChaiScript_Basic(
|
||||
chaiscript::Std_Lib::library(),
|
||||
std::make_unique<chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Noop_Tracer, chaiscript::optimizer::Optimizer_Default>>())) {
|
||||
chaiscript::Std_Lib::library<std::string>(),
|
||||
std::make_unique<chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Noop_Tracer, chaiscript::optimizer::Optimizer_Default, std::string>>())) {
|
||||
}
|
||||
|
||||
std::shared_ptr<chaiscript::ChaiScript_Basic> Multi_Test_Chai::get_chai() {
|
||||
|
||||
@ -67,7 +67,7 @@ int main() {
|
||||
// For this test we are going to load the dynamic stdlib
|
||||
// to make sure it continues to work
|
||||
chaiscript::ChaiScript_Basic chai(
|
||||
std::make_unique<chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Noop_Tracer, chaiscript::optimizer::Optimizer_Default>>(),
|
||||
std::make_unique<chaiscript::parser::ChaiScript_Parser<chaiscript::eval::Noop_Tracer, chaiscript::optimizer::Optimizer_Default, std::string>>(),
|
||||
modulepaths,
|
||||
usepaths);
|
||||
#endif
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user