aboutsummaryrefslogtreecommitdiff
path: root/src/boot/strap/parser.clisp
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2008-04-30 01:54:09 +0000
committerdos-reis <gdr@axiomatics.org>2008-04-30 01:54:09 +0000
commite739fdc538405684ca1a4c7e58ef26bb9d5eacad (patch)
tree2f226cabef54a8cbe3f6be16465c8c4a5d3447cf /src/boot/strap/parser.clisp
parentbce316614ee1d8dbb77aff1b6a13c354c16f63ea (diff)
downloadopen-axiom-e739fdc538405684ca1a4c7e58ef26bb9d5eacad.tar.gz
* boot/parser.boot (bpExportItemList): New.
(bpExports): Likewise. (bpModule): Use it. * boot/ast.boot (bfCreateDef): Tidy. * boot/strap: Update cached Lisp translation.
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