From 448ac0bcc3a81e250a825c333dd01c77e754341a Mon Sep 17 00:00:00 2001 From: Teddy Date: Sun, 11 Aug 2013 11:25:26 +0800 Subject: `delay` and `force` support is added --- model.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'model.cpp') diff --git a/model.cpp b/model.cpp index cf38b13..85d4e04 100644 --- a/model.cpp +++ b/model.cpp @@ -55,6 +55,10 @@ bool EvalObj::is_str_obj() { return otype & CLS_STR_OBJ; } +bool EvalObj::is_prom_obj() { + return otype & CLS_PROM_OBJ; +} + int EvalObj::get_otype() { return otype; } @@ -385,6 +389,18 @@ VectReprCons::VectReprCons(VecObj *_ptr, EvalObj *_ori) : } } +PromObj::PromObj(EvalObj *exp) : + EvalObj(CLS_SIM_OBJ | CLS_PROM_OBJ), entry(new Pair(exp, empty_list)), mem(NULL) {} + +Pair *PromObj::get_entry() { return entry; } + +ReprCons *PromObj::get_repr_cons() { return new ReprStr("#"); } + +EvalObj *PromObj::get_mem() { return mem; } + +void PromObj::feed_mem(EvalObj *res) { mem = res; } + + bool is_list(Pair *ptr) { if (ptr == empty_list) return true; EvalObj *nptr; -- cgit v1.2.3