aboutsummaryrefslogtreecommitdiff
path: root/src/boot/ast.boot
diff options
context:
space:
mode:
Diffstat (limited to 'src/boot/ast.boot')
-rw-r--r--src/boot/ast.boot5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/boot/ast.boot b/src/boot/ast.boot
index e386f405..0f55e523 100644
--- a/src/boot/ast.boot
+++ b/src/boot/ast.boot
@@ -126,6 +126,7 @@ structure %Ast ==
%Append(%Sequence) -- concatenate lists
%Case(%Ast,%Sequence) -- case x of ...
%Return(%Ast) -- return x
+ %Leave(%Ast) -- leave x
%Throw(%Ast) -- throw OutOfRange 3
%Catch(%Ast) -- catch OutOfRange
%Try(%Ast,%Sequence) -- try x / y catch DivisionByZero
@@ -461,6 +462,9 @@ bfDrop(n,x)==
bfReturnNoName a ==
["RETURN",a]
+
+bfLeave x ==
+ ["%Leave",x]
bfSUBLIS(p,e)==
atom e=>bfSUBLIS1(p,e)
@@ -803,7 +807,6 @@ shoeComp x==
a is ["LAMBDA",:.] => ["DEFUN",first x,second a,:CDDR a]
["DEFMACRO",first x,second a,:CDDR a]
-
++ Translate function parameter list to Lisp.
++ We are processing a function definition. `p2' is the list of
++ parameters we have seen so far, and we are about to add a