diff options
Diffstat (limited to 'src/boot/ast.boot')
-rw-r--r-- | src/boot/ast.boot | 5 |
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 |