Browse Source

Macro replacement bug fixed

master
Ludovic 'Archivist' Lagouardette 5 years ago
parent
commit
8d9a82c104
2 changed files with 8 additions and 8 deletions
  1. +1
    -2
      crank.h
  2. +7
    -6
      main.cpp

+ 1
- 2
crank.h View File

@ -1,7 +1,6 @@
#pragma once
#include "memory_pool.hpp"
#include "string_view.hpp"
#include "2CL.hpp"
class crank_context;
@ -165,7 +164,7 @@ public:
crank_copy* cpy = (crank_copy*)memory.allocate(sizeof(crank_copy));
if(cpy)
{
new(cpy) crank_copy{.next=std::move(copies), .data=kstd::string_view(ptr,src.size())};
new(cpy) crank_copy{.next=std::move(copies), .data=kstd::string_view(ptr,new_len)};
copies = std::move(crank_ptr{cpy, &memory});
auto dest = kstd::string_view(ptr,new_len);

+ 7
- 6
main.cpp View File

@ -6,29 +6,30 @@
#include <iostream>
#include <string>
kstd::string_view set2(kstd::string_view args, crank_context& ctx)
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 : value)
for(auto c : args)
std::cout<<c;
std::cout<<" out:"<<value.size()<<std::endl;
return ctx.store(key,value);
}
int main()
{
const char* set2text = "set2";
const char* putstext = "puts";
std::string get="";
crank_context ctx;
ctx.add_native(kstd::string_view((char*)set2text,4), set2);
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<<sa">" out:"<<ret.size()<<std::endl;
std::cout<<n">std::endl<<"> ";
}
}

Loading…
Cancel
Save