diff options
author | Teddy <ted.sybil@gmail.com> | 2013-08-05 19:49:31 +0800 |
---|---|---|
committer | Teddy <ted.sybil@gmail.com> | 2013-08-05 19:49:31 +0800 |
commit | a6574b0025b68eb28a8c7d679ca6783132ad013d (patch) | |
tree | 09f8e9976e209c9e7bf48556e8d90f211c1b3464 /model.cpp | |
parent | 5dba94ed1eec7a808cab022a23480b4d39518307 (diff) |
complex, real, rational, integral number support
Diffstat (limited to 'model.cpp')
-rw-r--r-- | model.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
@@ -39,7 +39,14 @@ bool EvalObj::is_cons_obj() { return otype & CLS_CONS_OBJ; } +bool EvalObj::is_num_obj() { + return otype & CLS_NUM_OBJ; +} + #ifdef DEBUG +string EvalObj::_debug_repr() { + return ext_repr(); +} void EvalObj::_debug_print() { printf("mem: 0x%llX\n%s\n\n", (unsigned long long)this, _debug_repr().c_str()); @@ -143,7 +150,14 @@ string ProcObj::_debug_repr() { return ext_repr(); } SpecialOptObj::SpecialOptObj() : OptObj() {} -NumberObj::NumberObj() : EvalObj() {} +BoolObj::BoolObj(bool _val) : EvalObj(), val(_val) {} + +bool BoolObj::is_true() { return val; } + +string BoolObj::ext_repr() { return string(val ? "#t" : "#f"); } + +NumObj::NumObj(NumLvl _level, bool _exactness) : + EvalObj(CLS_SIM_OBJ | CLS_NUM_OBJ), level(_level), exactness(_exactness) {} BuiltinProcObj::BuiltinProcObj(BuiltinProc f, string _name) : OptObj(), handler(f), name(_name) {} |