aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/interp/ChangeLog10
-rw-r--r--src/interp/Makefile.in7
-rw-r--r--src/interp/Makefile.pamphlet7
-rw-r--r--src/interp/mark.boot40
-rw-r--r--src/interp/parse.boot3
-rw-r--r--src/interp/postpar.boot2
-rw-r--r--src/interp/postprop.lisp131
7 files changed, 57 insertions, 143 deletions
diff --git a/src/interp/ChangeLog b/src/interp/ChangeLog
index bc8ec9da..653eb421 100644
--- a/src/interp/ChangeLog
+++ b/src/interp/ChangeLog
@@ -1,5 +1,15 @@
2007-11-28 Gabriel Dos Reis <gdr@cs.tamu.edu>
+ * postprop.$(FASLEXT): Remove rule.
+ * Makefile.pamphlet (OPOBJS): Don't include it anymore.
+ (postpar.$(FASLEXT)): Update requirement.
+ * mark.boot: Move setting of special compiler functions from
+ postprop.lisp to here.
+ * postprop.lisp: Remove.
+ * parse.boot: Register special parser for "xor".
+
+2007-11-28 Gabriel Dos Reis <gdr@cs.tamu.edu>
+
* Makefile.pamphlet (compiler.$(FASLEXT)): Update requirement.
* compiler.boot: Import "define" and "iterator".
Move setting of special compiler functions from property.lisp to
diff --git a/src/interp/Makefile.in b/src/interp/Makefile.in
index 4f933fb5..1dda3f17 100644
--- a/src/interp/Makefile.in
+++ b/src/interp/Makefile.in
@@ -91,7 +91,7 @@ OPOBJS= parsing.$(FASLEXT) bootlex.$(FASLEXT) \
def.$(FASLEXT) \
fnewmeta.$(FASLEXT) metalex.$(FASLEXT) \
parse.$(FASLEXT) postpar.$(FASLEXT) \
- postprop.$(FASLEXT) preparse.$(FASLEXT)
+ preparse.$(FASLEXT)
autoload_objects += $(OPBJS)
OCOBJS= apply.$(FASLEXT) c-doc.$(FASLEXT) \
@@ -586,12 +586,9 @@ parse.$(FASLEXT): parse.boot metalex.$(FASLEXT) postpar.$(FASLEXT)
packtran.$(FASLEXT): packtran.boot sys-macros.$(FASLEXT)
$(BOOTSYS) -- --compile --output=$@ --load-directory=. $<
-postpar.$(FASLEXT): postpar.boot postprop.$(FASLEXT)
+postpar.$(FASLEXT): postpar.boot macros.$(FASLEXT)
$(BOOTSYS) -- --compile --boot="old" --output=$@ --load-directory=. $<
-postprop.$(FASLEXT): postprop.lisp macros.$(FASLEXT)
- $(BOOTSYS) -- --compile --output=$@ --load-directory=. $<
-
bootlex.$(FASLEXT): bootlex.lisp preparse.$(FASLEXT) def.$(FASLEXT) \
nlib.$(FASLEXT)
$(BOOTSYS) -- --compile --output=$@ --load-directory=. $<
diff --git a/src/interp/Makefile.pamphlet b/src/interp/Makefile.pamphlet
index 3281a59a..35641fcf 100644
--- a/src/interp/Makefile.pamphlet
+++ b/src/interp/Makefile.pamphlet
@@ -218,7 +218,7 @@ OPOBJS= parsing.$(FASLEXT) bootlex.$(FASLEXT) \
def.$(FASLEXT) \
fnewmeta.$(FASLEXT) metalex.$(FASLEXT) \
parse.$(FASLEXT) postpar.$(FASLEXT) \
- postprop.$(FASLEXT) preparse.$(FASLEXT)
+ preparse.$(FASLEXT)
autoload_objects += $(OPBJS)
@
@@ -921,12 +921,9 @@ parse.$(FASLEXT): parse.boot metalex.$(FASLEXT) postpar.$(FASLEXT)
packtran.$(FASLEXT): packtran.boot sys-macros.$(FASLEXT)
$(BOOTSYS) -- --compile --output=$@ --load-directory=. $<
-postpar.$(FASLEXT): postpar.boot postprop.$(FASLEXT)
+postpar.$(FASLEXT): postpar.boot macros.$(FASLEXT)
$(BOOTSYS) -- --compile --boot="old" --output=$@ --load-directory=. $<
-postprop.$(FASLEXT): postprop.lisp macros.$(FASLEXT)
- $(BOOTSYS) -- --compile --output=$@ --load-directory=. $<
-
bootlex.$(FASLEXT): bootlex.lisp preparse.$(FASLEXT) def.$(FASLEXT) \
nlib.$(FASLEXT)
$(BOOTSYS) -- --compile --output=$@ --load-directory=. $<
diff --git a/src/interp/mark.boot b/src/interp/mark.boot
index 5c314d2f..4f40971d 100644
--- a/src/interp/mark.boot
+++ b/src/interp/mark.boot
@@ -1495,3 +1495,43 @@ ppf x ==
_*PRETTYPRINT_* : local := true
PRINT_-FULL x
+
+--%
+for x in [["LET", :"compSetq"],_
+ ["Join", :"compJoin"],_
+ ["Record", :"compCat"],_
+ ["Union", :"compCat"],_
+ ["_:", :"compColon"],_
+ ["_:_:", :"compCoerce"],_
+ ["CAPSULE", :"compCapsule"],_
+ ["has", :"compHas"],_
+ ["is", :"compIs"],_
+ ["add", :"compAdd"],_
+ ["CONS", :"compCons"],_
+ ["IF", :"compIf"],_
+ ["exit", :"compExit"],_
+ ["return", :"compReturn"],_
+ ["return", :"compLeave"],_
+ ["elt", :"compElt"],_
+ ["DEF", :"compDefine"],_
+ ["MDEF", :"compMacro"],_
+ ["SubsetCategory", :"compSubsetCategory"],_
+ ["SubDomain", :"compSubDomain"],_
+ ["case", :"compCase"],_
+ ["String", :"compString"],_
+ ["RecordCategory", :"compConstructorCategory"],_
+ ["ListCategory", :"compConstructorCategory"],_
+ ["VectorCategory", :"compConstructorCategory"],_
+ ["UnionCategory", :"compConstructorCategory"],_
+ ["CATEGORY", :"compCategory"],_
+ ["COLLECT", :"compRepeatOrCollect"],_
+ ["COLLECTV", :"compCollectV"],_
+ ["REPEAT", :"compRepeatOrCollect"],_
+ ["REDUCE", :"compReduce"],_
+ ["where", :"compWhere"],_
+ ["_|", :"compSuchthat"],_
+ ["construct", "compConstruct"],_
+ ["SEQ", :"compSeq"],_
+ ["SETQ", :"compSetq"],_
+ ["VECTOR", :"compVector"]] repeat
+ MAKEPROP(car x, "special", cdr x)
diff --git a/src/interp/parse.boot b/src/interp/parse.boot
index d5f07a25..b4cf2d73 100644
--- a/src/interp/parse.boot
+++ b/src/interp/parse.boot
@@ -524,5 +524,6 @@ for x in [["<=", :function parseLessEqual],_
["SEGMENT", :function parseSegment],_
["SEQ", :function parseSeq],_
["VCONS", :function parseVCONS],_
- ["where", :function parseWhere]] repeat
+ ["where", :function parseWhere],_
+ ["xor", :function parseExclusiveOr]] repeat
MAKEPROP(car x, "parseTran", cdr x)
diff --git a/src/interp/postpar.boot b/src/interp/postpar.boot
index 8cd67c35..e8a6007a 100644
--- a/src/interp/postpar.boot
+++ b/src/interp/postpar.boot
@@ -32,7 +32,7 @@
-- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import '"postprop"
+import '"macros"
)package "BOOT"
$postStack := []
diff --git a/src/interp/postprop.lisp b/src/interp/postprop.lisp
deleted file mode 100644
index f79f01ff..00000000
--- a/src/interp/postprop.lisp
+++ /dev/null
@@ -1,131 +0,0 @@
-;; Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd.
-;; All rights reserved.
-;; Copyright (C) 2007, Gabriel Dos Reis.
-;; All rights reserved.
-;;
-;; Redistribution and use in source and binary forms, with or without
-;; modification, are permitted provided that the following conditions are
-;; met:
-;;
-;; - Redistributions of source code must retain the above copyright
-;; notice, this list of conditions and the following disclaimer.
-;;
-;; - Redistributions in binary form must reproduce the above copyright
-;; notice, this list of conditions and the following disclaimer in
-;; the documentation and/or other materials provided with the
-;; distribution.
-;;
-;; - Neither the name of The Numerical ALgorithms Group Ltd. nor the
-;; names of its contributors may be used to endorse or promote products
-;; derived from this software without specific prior written permission.
-;;
-;; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
-;; IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-;; TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-;; PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
-;; OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-;; EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-;; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-;; PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-;; LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-(IMPORT-MODULE "macros")
-(in-package "BOOT")
-
-(mapcar #'(lambda (x) (MAKEPROP (CAR X) '|special| (CADR X)))
- '((LET |compSetq|) (|Join| |compJoin|)
- (|Record| |compCat|)
- (|Union| |compCat|) (\: |compColon|)
- (\:\: |compCoerce|) (CAPSULE |compCapsule|)
- (|has| |compHas|) (|is| |compIs|)
- (|add| |compAdd|) (CONS |compCons|)
- (IF |compIf|) (|exit| |compExit|)
- (|return| |compReturn|) (|leave| |compLeave|)
- (|elt| |compElt|) (DEF |compDefine|)
- (MDEF |compMacro|) (|SubsetCategory| |compSubsetCategory|)
- (|SubDomain| |compSubDomain|)
- (|case| |compCase|) (|String| |compString|)
- (|RecordCategory| |compConstructorCategory|)
- (|ListCategory| |compConstructorCategory|)
- (|VectorCategory| |compConstructorCategory|)
- (|UnionCategory| |compConstructorCategory|)
- (CATEGORY |compCategory|)
- (COLLECT |compRepeatOrCollect|)
- (COLLECTV |compCollectV|)
- (REPEAT |compRepeatOrCollect|)
- (REDUCE |compReduce|) (|where| |compWhere|)
- (\| |compSuchthat|) (|construct| |compConstruct|)
- (SEQ |compSeq|) (SETQ |compSetq|)
- (VECTOR |compVector|)))
-
-(mapcar #'(lambda (x) (MAKEPROP (CAR X) '|postTran| (second X)))
- '((|with| |postWith|)
- (|Scripts| |postScripts|)
- (/ |postSlash|)
- (|construct| |postConstruct|)
- (|Block| |postBlock|)
- (QUOTE |postQUOTE|)
- (COLLECT |postCollect|)
- (\:BF\: |postBigFloat|)
- (|in| |postin|) ; the infix operator version of i
- (IN |postIn|) ; the iterator form of i
- (REPEAT |postRepeat|)
- (|TupleCollect| |postTupleCollect|)
- (|add| |postAdd|)
- (|Reduce| |postReduce|)
- (\, |postComma|)
- (\; |postSemiColon|)
- (|where| |postWhere|)
- (\: |postColon|)
- (\@ |postAtSign|)
- (|pretend| |postPretend|)
- (|if| |postIf|)
- (|Join| |postJoin|)
- (|Signature| |postSignature|)
- (CATEGORY |postCategory|)
- (== |postDef|)
- (==> |postMDef|)
- (-> |postMapping|)
- (=> |postExit|)
- (|Tuple| |postTuple|)))
-
-(mapcar #'(lambda (x) (MAKEPROP (CAR X) '|parseTran| (CADR X)))
- '((\<= |parseLessEqual|)
- (\> |parseGreaterThan|)
- (\>= |parseGreaterEqual|)
- ($\<= |parseDollarLessEqual|)
- ($\> |parseDollarGreaterThan|)
- ($\>= |parseDollarGreaterEqual|)
- ($^= |parseDollarNotEqual|)
- (^= |parseNotEqual|)
- (\: |parseColon|)
- (\:\: |parseCoerce|)
- (\@ |parseAtSign|)
- (|and| |parseAnd|)
- (CATEGORY |parseCategory|)
- (|construct| |parseConstruct|)
- (DEF |parseDEF|)
- (|eqv| |parseEquivalence|)
- (|exit| |parseExit|)
- (|has| |parseHas|)
- (IF |parseIf|)
- (|implies| |parseImplies|)
- (IN |parseIn|)
- (INBY |parseInBy|)
- (|is| |parseIs|)
- (|isnt| |parseIsnt|)
- (|Join| |parseJoin|)
- (|leave| |parseLeave|)
- (LET |parseLET|)
- (LETD |parseLETD|)
- (MDEF |parseMDEF|)
- (|or| |parseOr|)
- (|pretend| |parsePretend|)
- (|return| |parseReturn|)
- (SEQ |parseSeq|)
- (VCONS |parseVCONS|)
- (|where| |parseWhere|)
- (|xor| |parseExclusiveOr|)))