From cb7fc37a4e7a95f7c9dbda0a4c587d75250e1760 Mon Sep 17 00:00:00 2001 From: dos-reis Date: Sun, 6 Jun 2010 16:34:20 +0000 Subject: * interp/compiler.boot (replaceExitEtc): Tidy. --- src/ChangeLog | 4 ++++ src/interp/compiler.boot | 20 ++++++++++---------- 2 files changed, 14 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/ChangeLog b/src/ChangeLog index b0c37676..c1bf33c4 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2010-06-06 Gabriel Dos Reis + + * interp/compiler.boot (replaceExitEtc): Tidy. + 2010-06-06 Gabriel Dos Reis * interp/c-util.boot (mutateToBackendCode): Don't replace explicit diff --git a/src/interp/compiler.boot b/src/interp/compiler.boot index b1b7399e..c4bee569 100644 --- a/src/interp/compiler.boot +++ b/src/interp/compiler.boot @@ -1027,23 +1027,23 @@ compSeqItem(x,m,e) == replaceExitEtc(x,tag,opFlag,opMode) == (fn(x,tag,opFlag,opMode); x) where fn(x,tag,opFlag,opMode) == - atom x => nil - x is ["QUOTE",:.] => nil + isAtomicForm x => nil x is [ =opFlag,n,t] => - third(x).first := replaceExitEtc(CAADDR x,tag,opFlag,opMode) + second(x.args).expr := + replaceExitEtc(second(x.args).expr,tag,opFlag,opMode) n=0 => $finalEnv:= --bound in compSeq1 and compDefineCapsuleFunction $finalEnv => intersectionEnvironment($finalEnv,t.env) t.env - x.first := "THROW" - x.rest.first := tag - x.rest.rest.first := convertOrCroak(t,opMode).expr - true => x.rest.first := second x-1 + x.op := "THROW" + first(x.args) := tag + second(x.args) := convertOrCroak(t,opMode).expr + first(x.args) := second x-1 x is [key,n,t] and key in '(TAGGEDreturn TAGGEDexit) => - t.first := replaceExitEtc(first t,tag,opFlag,opMode) - replaceExitEtc(first x,tag,opFlag,opMode) - replaceExitEtc(rest x,tag,opFlag,opMode) + t.expr := replaceExitEtc(t.expr,tag,opFlag,opMode) + replaceExitEtc(x.op,tag,opFlag,opMode) + replaceExitEtc(x.args,tag,opFlag,opMode) --% SUCHTHAT compSuchthat: (%Form,%Mode,%Env) -> %Maybe %Triple -- cgit v1.2.3