forked from OctaForge/libcubescript
fix
This commit is contained in:
parent
eb2c3fa831
commit
c470bab892
|
@ -1072,7 +1072,7 @@ struct GenState {
|
||||||
gen_ident(cs.new_ident(word, IDF_UNKNOWN));
|
gen_ident(cs.new_ident(word, IDF_UNKNOWN));
|
||||||
}
|
}
|
||||||
|
|
||||||
void gen_main(const char *p, int ret_type = VAL_ANY);
|
void gen_main(ostd::ConstCharRange s, int ret_type = VAL_ANY);
|
||||||
};
|
};
|
||||||
|
|
||||||
static inline void compileblock(GenState &gs) {
|
static inline void compileblock(GenState &gs) {
|
||||||
|
@ -2064,8 +2064,9 @@ endstatement:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void GenState::gen_main(const char *p, int ret_type) {
|
void GenState::gen_main(ostd::ConstCharRange s, int ret_type) {
|
||||||
code.push(CODE_START);
|
code.push(CODE_START);
|
||||||
|
auto p = s.data();
|
||||||
compilestatements(*this, p, VAL_ANY);
|
compilestatements(*this, p, VAL_ANY);
|
||||||
code.push(CODE_EXIT | ((ret_type < VAL_ANY) ? (ret_type << CODE_RET) : 0));
|
code.push(CODE_EXIT | ((ret_type < VAL_ANY) ? (ret_type << CODE_RET) : 0));
|
||||||
}
|
}
|
||||||
|
@ -2073,7 +2074,7 @@ void GenState::gen_main(const char *p, int ret_type) {
|
||||||
ostd::Uint32 *CsState::compile(ostd::ConstCharRange str) {
|
ostd::Uint32 *CsState::compile(ostd::ConstCharRange str) {
|
||||||
GenState gs(*this);
|
GenState gs(*this);
|
||||||
gs.code.reserve(64);
|
gs.code.reserve(64);
|
||||||
gs.gen_main(str.data());
|
gs.gen_main(str);
|
||||||
ostd::Uint32 *code = new ostd::Uint32[gs.code.size()];
|
ostd::Uint32 *code = new ostd::Uint32[gs.code.size()];
|
||||||
memcpy(code, gs.code.data(), gs.code.size() * sizeof(ostd::Uint32));
|
memcpy(code, gs.code.data(), gs.code.size() * sizeof(ostd::Uint32));
|
||||||
code[0] += 0x100;
|
code[0] += 0x100;
|
||||||
|
|
Loading…
Reference in a new issue