forked from OctaForge/libcubescript
move some implementations
parent
21054f3433
commit
e638b388f2
|
@ -498,6 +498,72 @@ void CsValue::cleanup() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int CsValue::get_type() const {
|
||||||
|
return p_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CsValue::set_int(CsInt val) {
|
||||||
|
p_type = VAL_INT;
|
||||||
|
i = val;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CsValue::set_float(CsFloat val) {
|
||||||
|
p_type = VAL_FLOAT;
|
||||||
|
f = val;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CsValue::set_str(CsString val) {
|
||||||
|
if (val.size() == 0) {
|
||||||
|
/* ostd zero length strings cannot be disowned */
|
||||||
|
char *buf = new char[1];
|
||||||
|
buf[0] = '\0';
|
||||||
|
set_mstr(buf);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
ostd::CharRange cr = val.iter();
|
||||||
|
val.disown();
|
||||||
|
set_mstr(cr);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CsValue::set_null() {
|
||||||
|
p_type = VAL_NULL;
|
||||||
|
i = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CsValue::set_code(Bytecode const *val) {
|
||||||
|
p_type = VAL_CODE;
|
||||||
|
code = val;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CsValue::set_cstr(ostd::ConstCharRange val) {
|
||||||
|
p_type = VAL_CSTR;
|
||||||
|
len = val.size();
|
||||||
|
cstr = val.data();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CsValue::set_mstr(ostd::CharRange val) {
|
||||||
|
p_type = VAL_STR;
|
||||||
|
len = val.size();
|
||||||
|
s = val.data();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CsValue::set_ident(Ident *val) {
|
||||||
|
p_type = VAL_IDENT;
|
||||||
|
id = val;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CsValue::set_macro(Bytecode const *val, ostd::Size ln) {
|
||||||
|
p_type = VAL_MACRO;
|
||||||
|
len = ln;
|
||||||
|
code = val;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CsValue::set(CsValue &tv) {
|
||||||
|
*this = tv;
|
||||||
|
tv.p_type = VAL_NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void CsValue::force_null() {
|
void CsValue::force_null() {
|
||||||
if (get_type() == VAL_NULL) {
|
if (get_type() == VAL_NULL) {
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -77,62 +77,19 @@ struct OSTD_EXPORT CsValue {
|
||||||
};
|
};
|
||||||
ostd::Size len;
|
ostd::Size len;
|
||||||
|
|
||||||
int get_type() const {
|
int get_type() const;
|
||||||
return p_type;
|
|
||||||
}
|
|
||||||
|
|
||||||
void set_int(CsInt val) {
|
void set_int(CsInt val);
|
||||||
p_type = VAL_INT;
|
void set_float(CsFloat val);
|
||||||
i = val;
|
void set_str(CsString val);
|
||||||
}
|
void set_null();
|
||||||
void set_float(CsFloat val) {
|
void set_code(Bytecode const *val);
|
||||||
p_type = VAL_FLOAT;
|
void set_cstr(ostd::ConstCharRange val);
|
||||||
f = val;
|
void set_mstr(ostd::CharRange val);
|
||||||
}
|
void set_ident(Ident *val);
|
||||||
void set_str(CsString val) {
|
void set_macro(Bytecode const *val, ostd::Size ln);
|
||||||
if (val.size() == 0) {
|
|
||||||
/* ostd zero length strings cannot be disowned */
|
|
||||||
char *buf = new char[1];
|
|
||||||
buf[0] = '\0';
|
|
||||||
set_mstr(buf);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
ostd::CharRange cr = val.iter();
|
|
||||||
val.disown();
|
|
||||||
set_mstr(cr);
|
|
||||||
}
|
|
||||||
void set_null() {
|
|
||||||
p_type = VAL_NULL;
|
|
||||||
i = 0;
|
|
||||||
}
|
|
||||||
void set_code(Bytecode const *val) {
|
|
||||||
p_type = VAL_CODE;
|
|
||||||
code = val;
|
|
||||||
}
|
|
||||||
void set_cstr(ostd::ConstCharRange val) {
|
|
||||||
p_type = VAL_CSTR;
|
|
||||||
len = val.size();
|
|
||||||
cstr = val.data();
|
|
||||||
}
|
|
||||||
void set_mstr(ostd::CharRange val) {
|
|
||||||
p_type = VAL_STR;
|
|
||||||
len = val.size();
|
|
||||||
s = val.data();
|
|
||||||
}
|
|
||||||
void set_ident(Ident *val) {
|
|
||||||
p_type = VAL_IDENT;
|
|
||||||
id = val;
|
|
||||||
}
|
|
||||||
void set_macro(Bytecode const *val, ostd::Size ln) {
|
|
||||||
p_type = VAL_MACRO;
|
|
||||||
len = ln;
|
|
||||||
code = val;
|
|
||||||
}
|
|
||||||
|
|
||||||
void set(CsValue &tv) {
|
void set(CsValue &tv);
|
||||||
*this = tv;
|
|
||||||
tv.p_type = VAL_NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
CsString get_str() const;
|
CsString get_str() const;
|
||||||
ostd::ConstCharRange get_strr() const;
|
ostd::ConstCharRange get_strr() const;
|
||||||
|
|
Loading…
Reference in New Issue