diff options
Diffstat (limited to 'sca-cpp/trunk/modules/scheme/eval.hpp')
-rw-r--r-- | sca-cpp/trunk/modules/scheme/eval.hpp | 66 |
1 files changed, 33 insertions, 33 deletions
diff --git a/sca-cpp/trunk/modules/scheme/eval.hpp b/sca-cpp/trunk/modules/scheme/eval.hpp index 05293a53d3..34d1a7bc17 100644 --- a/sca-cpp/trunk/modules/scheme/eval.hpp +++ b/sca-cpp/trunk/modules/scheme/eval.hpp @@ -36,7 +36,7 @@ namespace tuscany { namespace scheme { -const value evalExpr(const value& exp, Env& env, const gc_pool& pool); +const value evalExpr(const value& exp, Env& env); const value compoundProcedureSymbol("compound-procedure"); const value procedureSymbol("procedure"); @@ -86,10 +86,10 @@ const list<value> operands(const value& exp) { return cdr((list<value> )exp); } -const list<value> listOfValues(const list<value> exps, Env& env, const gc_pool& pool) { +const list<value> listOfValues(const list<value> exps, Env& env) { if(isNil(exps)) return list<value> (); - return cons(evalExpr(car(exps), env, pool), listOfValues(cdr(exps), env, pool)); + return cons(evalExpr(car(exps), env), listOfValues(cdr(exps), env)); } const value applyOperat(const value& exp) { @@ -132,19 +132,19 @@ const value makeBegin(const list<value> seq) { return cons(beginSymbol, seq); } -const value evalSequence(const list<value>& exps, Env& env, const gc_pool& pool) { +const value evalSequence(const list<value>& exps, Env& env) { if(isLastExp(exps)) - return evalExpr(firstExp(exps), env, pool); - evalExpr(firstExp(exps), env, pool); - return evalSequence(restExp(exps), env, pool); + return evalExpr(firstExp(exps), env); + evalExpr(firstExp(exps), env); + return evalSequence(restExp(exps), env); } -const value applyProcedure(const value& procedure, list<value>& arguments, const gc_pool& pool) { +const value applyProcedure(const value& procedure, list<value>& arguments) { if(isPrimitiveProcedure(procedure)) return applyPrimitiveProcedure(procedure, arguments); if(isCompoundProcedure(procedure)) { - Env env = extendEnvironment(procedureParameters(procedure), arguments, procedureEnvironment(procedure), pool); - return evalSequence(procedureBody(procedure), env, pool); + Env env = extendEnvironment(procedureParameters(procedure), arguments, procedureEnvironment(procedure)); + return evalSequence(procedureBody(procedure), env); } logStream() << "Unknown procedure type " << procedure << endl; return value(); @@ -218,41 +218,41 @@ value condToIf(const value& exp) { return expandClauses(condClauses(exp)); } -value evalIf(const value& exp, Env& env, const gc_pool& pool) { - if(isTrue(evalExpr(ifPredicate(exp), env, pool))) - return evalExpr(ifConsequent(exp), env, pool); - return evalExpr(ifAlternative(exp), env, pool); +value evalIf(const value& exp, Env& env) { + if(isTrue(evalExpr(ifPredicate(exp), env))) + return evalExpr(ifConsequent(exp), env); + return evalExpr(ifAlternative(exp), env); } -const value evalDefinition(const value& exp, Env& env, const gc_pool& pool) { - defineVariable(definitionVariable(exp), evalExpr(definitionValue(exp), env, pool), env); +const value evalDefinition(const value& exp, Env& env) { + defineVariable(definitionVariable(exp), evalExpr(definitionValue(exp), env), env); return definitionVariable(exp); } -const value evalExpr(const value& exp, Env& env, const gc_pool& pool) { +const value evalExpr(const value& exp, Env& env) { if(isSelfEvaluating(exp)) return exp; if(isQuoted(exp)) return textOfQuotation(exp); if(isDefinition(exp)) - return evalDefinition(exp, env, pool); + return evalDefinition(exp, env); if(isIf(exp)) - return evalIf(exp, env, pool); + return evalIf(exp, env); if(isBegin(exp)) - return evalSequence(beginActions(exp), env, pool); + return evalSequence(beginActions(exp), env); if(isCond(exp)) - return evalExpr(condToIf(exp), env, pool); + return evalExpr(condToIf(exp), env); if(isLambdaExpr(exp)) return makeProcedure(lambdaParameters(exp), lambdaBody(exp), env); if(isVariable(exp)) return lookupVariableValue(exp, env); if(isApply(exp)) { - list<value> applyOperandValues = evalExpr(applyOperand(exp), env, pool); - return applyProcedure(evalExpr(applyOperat(exp), env, pool), applyOperandValues, pool); + list<value> applyOperandValues = evalExpr(applyOperand(exp), env); + return applyProcedure(evalExpr(applyOperat(exp), env), applyOperandValues); } if(isApplication(exp)) { - list<value> operandValues = listOfValues(operands(exp), env, pool); - return applyProcedure(evalExpr(operat(exp), env, pool), operandValues, pool); + list<value> operandValues = listOfValues(operands(exp), env); + return applyProcedure(evalExpr(operat(exp), env), operandValues); } logStream() << "Unknown expression type " << exp << endl; return value(); @@ -267,22 +267,22 @@ const list<value> quotedParameters(const list<value>& p) { /** * Evaluate an expression against a script provided as a list of values. */ -const value evalScriptLoop(const value& expr, const list<value>& script, scheme::Env& env, const gc_pool& pool) { +const value evalScriptLoop(const value& expr, const list<value>& script, scheme::Env& env) { if (isNil(script)) - return scheme::evalExpr(expr, env, pool); - scheme::evalExpr(car(script), env, pool); - return evalScriptLoop(expr, cdr(script), env, pool); + return scheme::evalExpr(expr, env); + scheme::evalExpr(car(script), env); + return evalScriptLoop(expr, cdr(script), env); } -const value evalScript(const value& expr, const value& script, Env& env, const gc_pool& pool) { - return evalScriptLoop(expr, script, env, pool); +const value evalScript(const value& expr, const value& script, Env& env) { + return evalScriptLoop(expr, script, env); } /** * Evaluate an expression against a script provided as an input stream. */ -const value evalScript(const value& expr, istream& is, Env& env, const gc_pool& pool) { - return evalScript(expr, readScript(is), env, pool); +const value evalScript(const value& expr, istream& is, Env& env) { + return evalScript(expr, readScript(is), env); } } |