diff options
Diffstat (limited to 'src/interp')
-rw-r--r-- | src/interp/ChangeLog | 10 | ||||
-rw-r--r-- | src/interp/Makefile.in | 7 | ||||
-rw-r--r-- | src/interp/Makefile.pamphlet | 7 | ||||
-rw-r--r-- | src/interp/mark.boot | 40 | ||||
-rw-r--r-- | src/interp/parse.boot | 3 | ||||
-rw-r--r-- | src/interp/postpar.boot | 2 | ||||
-rw-r--r-- | src/interp/postprop.lisp | 131 |
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|))) |