|
|
- /*#define CATCH_CONFIG_MAIN // This tells Catch to provide a main() - only do this in one cpp file
-
- #include "catch.hpp"
- */
- #include "crank.h"
- #include <iostream>
- #include <string>
-
- kstd::string_view put(kstd::string_view args, crank_context& ctx)
- {
- args = skip_whitespace(args);
- auto key = extract_token(args);
- auto value = skip_linearspace(kstd::string_view(args.begin()+key.size(),args.end()));
- for(auto c : args)
- std::cout<<c;
- return ctx.store(key,value);
- }
-
- int main()
- {
- const char* putstext = "puts";
- std::string get="";
- crank_context ctx;
- ctx.add_native(kstd::string_view((char*)putstext,4), put);
- std::cout<<"> ";
- while((std::getline(std::cin,get)).good())
- {
- auto ret = ctx.eval(kstd::string_view(get.data(), get.size()));
- std::cout<<"&> ";
- for(auto c : ret)
- std::cout<<c;
- std::cout<<std::endl<<"> ";
- }
- }
-
-
- /*
- TEST_CASE("crank")
- {
- crank_context ctx;
- static const char* setter_code = "set sample \"Hello world\"";
- kstd::string_view setter_c{(char*)setter_code, 24};
- ctx.eval_no_copy(setter_c);
- static const char* getter_code = "$sample";
- kstd::string_view getter_c{(char*)getter_code, 7};
- ctx.eval_no_copy(getter_c);
- }*/
|