aboutsummaryrefslogtreecommitdiff
path: root/src/boot/strap/parser.clisp
diff options
context:
space:
mode:
Diffstat (limited to 'src/boot/strap/parser.clisp')
-rw-r--r--src/boot/strap/parser.clisp18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/boot/strap/parser.clisp b/src/boot/strap/parser.clisp
index f7139d25..d07e1228 100644
--- a/src/boot/strap/parser.clisp
+++ b/src/boot/strap/parser.clisp
@@ -1,4 +1,4 @@
-(EVAL-WHEN (:COMPILE-TOPLEVEL) (PROVIDE "parser"))
+(PROVIDE "parser")
(IMPORT-MODULE "includer")
@@ -442,9 +442,21 @@
(|bpPush| (|bfSymbol| (|bpPop1|))))))
('T (|bpString|))))
+(DEFUN |bpExportItemList| () (|bpListAndRecover| #'|bpSignature|))
+
+(DEFUN |bpExports| () (|bpPileBracketed| #'|bpExportItemList|))
+
(DEFUN |bpModule| ()
- (AND (|bpEqKey| 'MODULE) (OR (|bpName|) (|bpTrap|))
- (|bpPush| (|%Module| (|bpPop1|)))))
+ (COND
+ ((|bpEqKey| 'MODULE)
+ (IDENTITY
+ (PROGN
+ (OR (|bpName|) (|bpTrap|))
+ (COND
+ ((|bpEqKey| 'WHERE)
+ (AND (|bpExports|)
+ (|bpPush| (|%Module| (|bpPop2|) (|bpPop1|)))))
+ ('T (|bpPush| (|%Module| (|bpPop1|) NIL)))))))))
(DEFUN |bpImport| ()
(COND