From dd965c88c412be8646c4180d05d2270cf223f35c Mon Sep 17 00:00:00 2001 From: dos-reis Date: Sat, 14 May 2011 18:37:20 +0000 Subject: * boot/parser.boot (bpNamedScope): New. (bpApplication): Call it. --- src/boot/parser.boot | 7 +++++++ src/boot/strap/parser.clisp | 13 +++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) (limited to 'src/boot') diff --git a/src/boot/parser.boot b/src/boot/parser.boot index 0149687e..6d27017b 100644 --- a/src/boot/parser.boot +++ b/src/boot/parser.boot @@ -592,10 +592,17 @@ bpSelector()== and bpPush(bfElt(bpPop2(),bpPop1())) or bpPush bfSuffixDot bpPop1() ) +++ NamedScope: +++ NAMESPACE (Name | DOT) +bpNamedScope() == + bpEqKey "NAMESPACE" and (bpName() or bpDot() or bpTrap()) and + bpPush %Namespace bpPop1() + bpApplication()== bpPrimary() and bpAnyNo function bpSelector and (bpApplication() and bpPush(bfApplication(bpPop2(),bpPop1())) or true) + or bpNamedScope() ++ Typing: ++ SimpleType diff --git a/src/boot/strap/parser.clisp b/src/boot/strap/parser.clisp index fc6e7dda..00381889 100644 --- a/src/boot/strap/parser.clisp +++ b/src/boot/strap/parser.clisp @@ -627,11 +627,16 @@ (|bpPush| (|bfElt| (|bpPop2|) (|bpPop1|)))) (|bpPush| (|bfSuffixDot| (|bpPop1|)))))) +(DEFUN |bpNamedScope| () + (AND (|bpEqKey| 'NAMESPACE) (OR (|bpName|) (|bpDot|) (|bpTrap|)) + (|bpPush| (|%Namespace| (|bpPop1|))))) + (DEFUN |bpApplication| () - (AND (|bpPrimary|) (|bpAnyNo| #'|bpSelector|) - (OR (AND (|bpApplication|) - (|bpPush| (|bfApplication| (|bpPop2|) (|bpPop1|)))) - T))) + (OR (AND (|bpPrimary|) (|bpAnyNo| #'|bpSelector|) + (OR (AND (|bpApplication|) + (|bpPush| (|bfApplication| (|bpPop2|) (|bpPop1|)))) + T)) + (|bpNamedScope|))) (DEFUN |bpTyping| () (COND -- cgit v1.2.3