aboutsummaryrefslogtreecommitdiff
path: root/src/interp/g-opt.boot
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2011-12-02 19:38:49 +0000
committerdos-reis <gdr@axiomatics.org>2011-12-02 19:38:49 +0000
commit4891880a4cdc0eebdf1a8f11d771f40e0e1c394e (patch)
tree4e690e747c1893dd5a175f6bc762f4a3b4c09087 /src/interp/g-opt.boot
parentcc44b14797968a894e92bcff4a4afe30b26dd896 (diff)
downloadopen-axiom-4891880a4cdc0eebdf1a8f11d771f40e0e1c394e.tar.gz
* interp/buildom.boot (seteltRecordFun): Change EXIT to %exit.
* interp/clam.boot (compHash):Likewise. * interp/g-opt.boot (changeVariableDefinitionToStore): Likewise. (jumpToToplevel?): Likewise. (groupVariableDefinitions): Likewise. (changeLeaveToExit): Likewise. (optLabelled): Likewise. (optSeq): Likewise. * interp/lisp-backend.boot: Translate %exit to EXIT.
Diffstat (limited to 'src/interp/g-opt.boot')
-rw-r--r--src/interp/g-opt.boot18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/interp/g-opt.boot b/src/interp/g-opt.boot
index 003f3d0a..75df003b 100644
--- a/src/interp/g-opt.boot
+++ b/src/interp/g-opt.boot
@@ -97,7 +97,7 @@ changeVariableDefinitionToStore(form,vars) ==
abstractionOperator? form.op =>
changeVariableDefinitionToStore(form.absBody,[:form.absParms,:vars])
vars
- form is ['%seq,:stmts,['EXIT,val]] =>
+ form is ['%seq,:stmts,['%exit,val]] =>
for s in stmts repeat
vars := changeVariableDefinitionToStore(s,vars)
changeVariableDefinitionToStore(val,vars)
@@ -110,7 +110,7 @@ jumpToToplevel? x ==
atomic? x => false
op := x.op
op is '%seq => CONTAINED('%leave,x.args) -- FIXME: what about GO?
- op in '(EXIT %leave) => true
+ op in '(%exit %leave) => true
or/[jumpToToplevel? x' for x' in x]
++ Return true if `form' is just one assignment expression.
@@ -135,7 +135,7 @@ groupVariableDefinitions form ==
[form.absKind,form.absParms,groupVariableDefinitions form.absBody]
form is ['%loop,:iters,body,val] =>
[form.op,:iters,groupVariableDefinitions body,val]
- form isnt ['%seq,:stmts,['EXIT,val]] => form
+ form isnt ['%seq,:stmts,['%exit,val]] => form
defs := nil
for x in stmts while nonExitingSingleAssignment? x repeat
defs := [x.args,:defs]
@@ -143,7 +143,7 @@ groupVariableDefinitions form ==
stmts := drop(#defs,stmts)
expr :=
stmts = nil => val
- ['%seq,:stmts,['EXIT,val]]
+ ['%seq,:stmts,['%exit,val]]
['%bind,reverse! defs,expr]
optimizeFunctionDef(def) ==
@@ -213,7 +213,7 @@ subrname u ==
changeLeaveToExit(s,g) ==
s isnt [.,:.] or s.op in '(QUOTE %seq REPEAT COLLECT %collect %loop) => nil
- s is ['%leave, =g,:u] => (s.first := "EXIT"; s.rest := u)
+ s is ['%leave, =g,:u] => (s.first := '%exit; s.rest := u)
changeLeaveToExit(first s,g)
changeLeaveToExit(rest s,g)
@@ -252,14 +252,14 @@ optLabelled (x is ['%labelled,g,a]) ==
removeNeedlessLeave a
if a is ['%seq,:s,['%leave,=g,u]] then
changeLeaveToExit(s,g)
- a.rest := [:s,["EXIT",u]]
+ a.rest := [:s,['%exit,u]]
a := simplifyVMForm a
if hasNoLeave(a,g) then
resetTo(x,a)
else
changeLeaveToGo(a,g)
x.first := '%seq
- x.rest := [["EXIT",a],second g,["EXIT",second g]]
+ x.rest := [['%exit,a],second g,['%exit,second g]]
x
optSPADCALL(form is ['SPADCALL,:argl]) ==
@@ -424,14 +424,14 @@ optSeq ['%seq,:l] ==
--this gets rid of unwanted labels generated by declarations in %seq
[first l,:getRidOfTemps rest l]
seqToCOND l ==
- transform:= [[a,b] for x in l while (x is ['%when,[a,["EXIT",b]]])]
+ transform:= [[a,b] for x in l while (x is ['%when,[a,['%exit,b]]])]
before:= take(#transform,l)
aft:= after(l,before)
null before => ['%seq,:aft]
null aft => ['%when,:transform,'(%otherwise (conderr))]
optCond ['%when,:transform,['%otherwise,optSeq ['%seq,:aft]]]
tryToRemoveSeq l ==
- l is ['%seq,[op,a]] and op in '(EXIT RETURN %leave %return) => a
+ l is ['%seq,[op,a]] and op in '(%exit RETURN %leave %return) => a
l
optSuchthat [.,:u] == ["SUCHTHAT",:u]