aboutsummaryrefslogtreecommitdiff
path: root/src/interp/fnewmeta.lisp
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp/fnewmeta.lisp')
-rw-r--r--src/interp/fnewmeta.lisp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/interp/fnewmeta.lisp b/src/interp/fnewmeta.lisp
index 0e248f83..7df80102 100644
--- a/src/interp/fnewmeta.lisp
+++ b/src/interp/fnewmeta.lisp
@@ -113,7 +113,7 @@
;; Return: 'return' Expression +(return #1) ;
-;; Exit: 'exit' (Expression / +\$NoValue) +(exit #1) ;
+;; Exit: 'exit' Expression +(exit #1) ;
;; Leave: 'leave' ( Expression / +\$NoValue )
;; ('from' Label +(leaveFrom #1 #1) / +(leave #1)) ;
@@ -571,13 +571,19 @@
(PUSH-REDUCTION '|PARSE-Return|
(CONS '|return| (CONS (POP-STACK-1) NIL)))))
+(DEFUN |PARSE-Jump| ()
+ (LET ((S (CURRENT-SYMBOL)))
+ (AND S
+ (ACTION (ADVANCE-TOKEN))
+ (PUSH-REDUCTION '|PARSE-Jump| S))))
+
(DEFUN |PARSE-Exit| ()
(AND (MATCH-ADVANCE-STRING "exit")
(MUST (OR (|PARSE-Expression|)
(PUSH-REDUCTION '|PARSE-Exit| '|$NoValue|)))
(PUSH-REDUCTION '|PARSE-Exit|
- (CONS '|exit| (CONS (POP-STACK-1) NIL)))))
+ (CONS '|exit| (CONS (POP-STACK-1) NIL)))))
(DEFUN |PARSE-Leave| ()