aboutsummaryrefslogtreecommitdiff
path: root/src/boot/strap/parser.clisp
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2011-04-19 07:20:55 +0000
committerdos-reis <gdr@axiomatics.org>2011-04-19 07:20:55 +0000
commitc6179efd4a1f1770d4d31415582eabebbe2ab6a0 (patch)
treeb97b313c66be49e76f6f5fcc7e387ab362105c19 /src/boot/strap/parser.clisp
parenta4a45e923a2435574c09619da442fd15e71b2652 (diff)
downloadopen-axiom-c6179efd4a1f1770d4d31415582eabebbe2ab6a0.tar.gz
* boot/ast.boot (%Module): Now take three arguments.
* boot/parser.boot (bpModuleInterface): Rename from bpExports. (bpModuleExports): New. (bpModule): Now allow specification of exported names.
Diffstat (limited to 'src/boot/strap/parser.clisp')
-rw-r--r--src/boot/strap/parser.clisp27
1 files changed, 17 insertions, 10 deletions
diff --git a/src/boot/strap/parser.clisp b/src/boot/strap/parser.clisp
index 7b978080..89cb3dee 100644
--- a/src/boot/strap/parser.clisp
+++ b/src/boot/strap/parser.clisp
@@ -461,19 +461,26 @@
(DEFUN |bpExportItemList| () (|bpListAndRecover| #'|bpExportItem|))
-(DEFUN |bpExports| () (|bpPileBracketed| #'|bpExportItemList|))
+(DEFUN |bpModuleInterface| ()
+ (COND
+ ((|bpEqKey| 'WHERE)
+ (OR (|bpPileBracketed| #'|bpExportItemList|)
+ (AND (|bpExportItem|) (|bpPush| (LIST (|bpPop1|))))
+ (|bpTrap|)))
+ (T (|bpPush| NIL))))
+
+(DEFUN |bpModuleExports| ()
+ (COND
+ ((|bpParenthesized| #'|bpIdList|)
+ (|bpPush| (|bfUntuple| (|bpPop1|))))
+ (T (|bpPush| NIL))))
(DEFUN |bpModule| ()
(COND
- ((|bpEqKey| 'MODULE)
- (IDENTITY
- (PROGN
- (OR (|bpName|) (|bpTrap|))
- (COND
- ((|bpEqKey| 'WHERE)
- (AND (|bpExports|)
- (|bpPush| (|%Module| (|bpPop2|) (|bpPop1|)))))
- (T (|bpPush| (|%Module| (|bpPop1|) NIL)))))))))
+ ((|bpEqKey| 'MODULE) (OR (|bpName|) (|bpTrap|)) (|bpModuleExports|)
+ (|bpModuleInterface|)
+ (|bpPush| (|%Module| (|bpPop3|) (|bpPop2|) (|bpPop1|))))
+ (T NIL)))
(DEFUN |bpImport| ()
(PROG (|a|)