diff options
Diffstat (limited to 'src/resp.hpp')
-rw-r--r-- | src/resp.hpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/resp.hpp b/src/resp.hpp index efd0c43..5ee5047 100644 --- a/src/resp.hpp +++ b/src/resp.hpp @@ -682,9 +682,9 @@ struct Engine { virtual CVal compileDot(CEnv& cenv, CVal tup, int32_t index) = 0; virtual CVal compileGlobalSet(CEnv& cenv, const string& s, CVal v, const AST* t) = 0; virtual CVal compileGlobalGet(CEnv& cenv, const string& s, CVal v) = 0; - virtual void compileIfStart(CEnv& cenv, const AST* cond, const AST* type) = 0; - virtual void compileIfThen(CEnv& cenv, CVal thenV) = 0; - virtual void compileIfElse(CEnv& cenv, CVal elseV) = 0; + virtual CVal compileIfStart(CEnv& cenv, const AST* cond, const AST* type) = 0; + virtual CVal compileIfThen(CEnv& cenv, CVal thenV) = 0; + virtual CVal compileIfElse(CEnv& cenv, CVal elseV) = 0; virtual CVal compileIfEnd(CEnv& cenv) = 0; virtual CVal compileLiteral(CEnv& cenv, const AST* lit) = 0; virtual CVal compilePrimitive(CEnv& cenv, const ATuple* prim) = 0; @@ -834,6 +834,7 @@ void resp_constrain(TEnv& tenv, Constraints& c, const AST* ast) throw(Erro const AST* resp_simplify(CEnv& cenv, const AST* ast) throw(); const AST* resp_cps(CEnv& cenv, const AST* ast, const AST* k) throw(); const AST* resp_lift(CEnv& cenv, Code& code, const AST* ast) throw(); +const AST* resp_flatten(CEnv& cenv, Code& code, const AST* ast) throw(); CVal resp_compile(CEnv& cenv, const AST* ast) throw(); bool is_form(const AST* ast, const std::string& form); |