aboutsummaryrefslogtreecommitdiff
path: root/src/boot/parser.boot
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/boot/parser.boot
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/boot/parser.boot')
-rw-r--r--src/boot/parser.boot8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/boot/parser.boot b/src/boot/parser.boot
index e754375d..9525c6db 100644
--- a/src/boot/parser.boot
+++ b/src/boot/parser.boot
@@ -734,11 +734,15 @@ bpLeave() ==
++ Return:
++ RETURN Assign
+++ Leave
+++ Throw
+++ And
bpReturn()==
(bpEqKey "RETURN" and (bpAssign() or bpTrap()) and
bpPush bfReturnNoName bpPop1())
- or bpThrow()
- or bpAnd()
+ or bpLeave()
+ or bpThrow()
+ or bpAnd()
bpLogical()== bpLeftAssoc('(OR),function bpReturn)