aboutsummaryrefslogtreecommitdiff
path: root/src/interp
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2010-05-15 21:06:57 +0000
committerdos-reis <gdr@axiomatics.org>2010-05-15 21:06:57 +0000
commitf905c6332417ccd8266e921cfbd716db6c64c9aa (patch)
tree769c07857ceb1bbc3f9dfff13e2f6236d118ccd2 /src/interp
parent0d8fcdd4995bba86701b8184b288dd549a5336fa (diff)
downloadopen-axiom-f905c6332417ccd8266e921cfbd716db6c64c9aa.tar.gz
* boot/ast.boot (shoeCompTran1): Handle %Leave expressions.
* boot/parser.boot (bpReturn): Parse leave-expressions too. * interp/mark.boot (markInsertBodyParts): properly escape Boot keywords.
Diffstat (limited to 'src/interp')
-rw-r--r--src/interp/mark.boot6
-rw-r--r--src/interp/pspad2.boot2
2 files changed, 4 insertions, 4 deletions
diff --git a/src/interp/mark.boot b/src/interp/mark.boot
index 9217acb2..ebaa4475 100644
--- a/src/interp/mark.boot
+++ b/src/interp/mark.boot
@@ -1154,11 +1154,11 @@ markInsertBodyParts u ==
--u is ["%LET",a,b] and constructor? opOf b => u
u is ["%LET",a,b] and a is [op,:.] =>
["%LET",[markWrapPart x for x in a],markInsertBodyParts b]
- u is [op,a,b] and op in '(_add _with IN %LET) =>
+ u is [op,a,b] and op in '(add with IN %LET) =>
[op,markInsertBodyParts a,markInsertBodyParts b]
- u is [op,a,b] and op in '(_: _:_: _pretend _@) =>
+ u is [op,a,b] and op in '(_: _:_: pretend _@) =>
[op,markInsertBodyParts a,b]
- u is [op,a,:x] and op in '(STEP return leave exit reduce) =>
+ u is [op,a,:x] and op in '(STEP _return _leave exit reduce) =>
[op,a,:[markInsertBodyParts y for y in x]]
u is [op,:x] and markPartOp? op => [op,:[markWrapPart y for y in x]]
u is [op,:.] and constructor? op => u
diff --git a/src/interp/pspad2.boot b/src/interp/pspad2.boot
index f181c5d0..4e11875a 100644
--- a/src/interp/pspad2.boot
+++ b/src/interp/pspad2.boot
@@ -168,7 +168,7 @@ formatDeftranREPEAT(itl,body) ==
u := [x for x in itl | x is ["UNTIL",p]] or return nil
nitl := SETDIFFERENCE(itl,u)
pred := MKPF([p for ['UNTIL,p] in u],'or)
- cond := ['IF,pred,['leave,n,nil],'%noBranch]
+ cond := ['IF,pred,["leave",n,nil],'%noBranch]
nbody :=
body is ['SEQ,:l,[.,n,x]] => ['SEQ,:l,x,['exit,n,cond]]
['SEQ,body,['exit,n,cond]]