diff options
author | dos-reis <gdr@axiomatics.org> | 2010-05-15 21:06:57 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2010-05-15 21:06:57 +0000 |
commit | f905c6332417ccd8266e921cfbd716db6c64c9aa (patch) | |
tree | 769c07857ceb1bbc3f9dfff13e2f6236d118ccd2 /src/interp | |
parent | 0d8fcdd4995bba86701b8184b288dd549a5336fa (diff) | |
download | open-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.boot | 6 | ||||
-rw-r--r-- | src/interp/pspad2.boot | 2 |
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]] |