aboutsummaryrefslogtreecommitdiff
path: root/src/boot/strap/parser.clisp
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2011-10-01 22:21:23 +0000
committerdos-reis <gdr@axiomatics.org>2011-10-01 22:21:23 +0000
commit496ca25659180bb29cc5fea2f3c0337695d742d3 (patch)
treefe020f749b8247903bc66b576c273b61c5aa46ae /src/boot/strap/parser.clisp
parent73374b314b15f2a313718d0e347a1050d1d1a405 (diff)
downloadopen-axiom-496ca25659180bb29cc5fea2f3c0337695d742d3.tar.gz
* boot/parser.boot (bpImport): Accept long names for used namespaces.
* boot/translator.boot (packageBody): Tidy. (translateToplevel): Likewise. (getIntermediateLispFile): Likewise. * interp/sys-os.boot: Import System.Foreign.
Diffstat (limited to 'src/boot/strap/parser.clisp')
-rw-r--r--src/boot/strap/parser.clisp22
1 files changed, 13 insertions, 9 deletions
diff --git a/src/boot/strap/parser.clisp b/src/boot/strap/parser.clisp
index 7b470d05..3d8d15f8 100644
--- a/src/boot/strap/parser.clisp
+++ b/src/boot/strap/parser.clisp
@@ -440,15 +440,19 @@
(RETURN
(COND
((|bpEqKey| 'IMPORT)
- (COND ((|bpNamespace|) (|bpPush| (|%Import| (|bpPop1|))))
- (T (SETQ |a| (|bpState|)) (OR (|bpName|) (|bpTrap|))
- (COND
- ((|bpEqPeek| 'COLON) (|bpRestore| |a|)
- (AND (OR (|bpSignature|) (|bpTrap|))
- (OR (|bpEqKey| 'FOR) (|bpTrap|))
- (OR (|bpName|) (|bpTrap|))
- (|bpPush| (|%ImportSignature| (|bpPop1|) (|bpPop1|)))))
- (T (|bpPush| (|%Import| (|bpPop1|))))))))
+ (COND
+ ((|bpEqKey| 'NAMESPACE)
+ (OR
+ (AND (|bpLeftAssoc| '(DOT) #'|bpName|)
+ (|bpPush| (|%Import| (|bfNamespace| (|bpPop1|)))))
+ (|bpTrap|)))
+ (T (SETQ |a| (|bpState|)) (OR (|bpName|) (|bpTrap|))
+ (COND
+ ((|bpEqPeek| 'COLON) (|bpRestore| |a|)
+ (AND (OR (|bpSignature|) (|bpTrap|))
+ (OR (|bpEqKey| 'FOR) (|bpTrap|)) (OR (|bpName|) (|bpTrap|))
+ (|bpPush| (|%ImportSignature| (|bpPop1|) (|bpPop1|)))))
+ (T (|bpPush| (|%Import| (|bpPop1|))))))))
(T NIL)))))
(DEFUN |bpNamespace| ()