remove parser_state::done()

master
Daniel Kolesa 2021-04-09 00:56:58 +02:00
parent 283f23394d
commit e5a05a3199
4 changed files with 16 additions and 18 deletions

View File

@ -38,10 +38,6 @@ struct parser_state {
} }
~parser_state() { ~parser_state() {
done();
}
void done() {
if (!parsing) { if (!parsing) {
return; return;
} }

View File

@ -656,11 +656,12 @@ static any_value do_run(
) { ) {
any_value ret{*ts.pstate}; any_value ret{*ts.pstate};
gen_state gs{ts}; gen_state gs{ts};
parser_state ps{ts, gs}; {
ps.src_name = file; parser_state ps{ts, gs};
gs.code.reserve(64); ps.src_name = file;
ps.gen_main(code, VAL_ANY); gs.code.reserve(64);
ps.done(); ps.gen_main(code, VAL_ANY);
}
std::uint32_t *cbuf = bcode_alloc(ts.istate, gs.code.size()); std::uint32_t *cbuf = bcode_alloc(ts.istate, gs.code.size());
std::memcpy(cbuf, gs.code.data(), gs.code.size() * sizeof(std::uint32_t)); std::memcpy(cbuf, gs.code.data(), gs.code.size() * sizeof(std::uint32_t));
bcode_ref cref{reinterpret_cast<bcode *>(cbuf + 1)}; bcode_ref cref{reinterpret_cast<bcode *>(cbuf + 1)};

View File

@ -270,10 +270,11 @@ bcode_ref any_value::force_code(state &cs) {
break; break;
} }
gen_state gs{state_p{cs}.ts()}; gen_state gs{state_p{cs}.ts()};
parser_state ps{state_p{cs}.ts(), gs}; {
gs.code.reserve(64); parser_state ps{state_p{cs}.ts(), gs};
ps.gen_main(get_string()); gs.code.reserve(64);
ps.done(); ps.gen_main(get_string());
}
uint32_t *cbuf = bcode_alloc(state_p{cs}.ts().istate, gs.code.size()); uint32_t *cbuf = bcode_alloc(state_p{cs}.ts().istate, gs.code.size());
std::memcpy(cbuf, gs.code.data(), gs.code.size() * sizeof(std::uint32_t)); std::memcpy(cbuf, gs.code.data(), gs.code.size() * sizeof(std::uint32_t));
auto *bc = reinterpret_cast<bcode *>(cbuf + 1); auto *bc = reinterpret_cast<bcode *>(cbuf + 1);

View File

@ -700,7 +700,6 @@ std::uint32_t *vm_exec(
parser_state ps{ts, gs}; parser_state ps{ts, gs};
gs.code.reserve(64); gs.code.reserve(64);
ps.gen_main(arg.get_string()); ps.gen_main(arg.get_string());
ps.done();
break; break;
} }
default: default:
@ -725,10 +724,11 @@ std::uint32_t *vm_exec(
std::string_view s = arg.get_string(); std::string_view s = arg.get_string();
if (!s.empty()) { if (!s.empty()) {
gen_state gs{ts}; gen_state gs{ts};
parser_state ps{ts, gs}; {
gs.code.reserve(64); parser_state ps{ts, gs};
ps.gen_main(s); gs.code.reserve(64);
ps.done(); ps.gen_main(s);
}
std::uint32_t *cbuf = bcode_alloc( std::uint32_t *cbuf = bcode_alloc(
ts.istate, gs.code.size() ts.istate, gs.code.size()
); );